diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..5182c9ada --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.out +*.out_py3 +*.pyc +*.pyo diff --git a/README b/README index fb3591837..a0db8ca96 100644 --- a/README +++ b/README @@ -1,137 +1,184 @@ Online Python Tutor -Copyright (C) 2010 Philip J. Guo (philip@pgbovine.net) -https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +http://pythontutor.com/ +https://github.com/pgbovine/OnlinePythonTutor/ -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) -====== -Introduction: +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -The Online Python Tutor is a web application where you can type Python -scripts directly into your web browser, execute those scripts, and -single-step FORWARDS AND BACKWARDS through execution in order to view -the run-time state of all data structures. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -Using this tool, teachers and students can write small Python code -snippets together and see what happens to the data structures when the -code gets executed. - -Try it out live at: http://www.onlinepythontutor.com/ +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ====== -System architecture overview: - -The Online Python Tutor is implemented as a web application, with a -JavaScript front-end making AJAX calls to a pure-Python back-end. - -The back-end has been tested on an Apache server running Python 2.5 -through CGI. Note that it will probably fail in subtle ways on other -Python 2.X (and will DEFINITELY fail on Python 3.X). Peter Wentworth -has create a port to Python 3.X, and hopefully we can eventually -integrate his code into my repository. - - -The front-end is HTML/JavaScript (using the jQuery library). It's -responsible for the input text box, submitting the Python code (as -plaintext) to the back-end, receiving an execution trace from the -back-end, and then rendering that trace as data structure -visualizations. The front-end code resides in these files in the -current directory: - - tutor.html - question.html - edu-python.js - edu-python-tutor.js - edu-python-questions.js - edu-python.css - jquery.textarea.js - .htaccess - to increase the size of allowed Apache HTTP responses - - (there are also other 3rd-party JavaScript library files) -Note on .htaccess: If your server limits the size of responses received -from HTTP requests, then you might need to use the following .htaccess -file included in your top-level (front-end) directory, to allow the -Online Python Tutor to receive traces from the back-end: +Summary: + + Online Python Tutor enables teachers and students to write Python + programs directly in the web browser, execute those programs, and then + step forwards and backwards through execution to view the run-time + state of data structures. - + So far, over 100,000 people have used Online Python Tutor to + understand and debug their programs, often as a supplement to + textbooks, lecture notes, and online programming tutorials. -# Set a ~2MB limit for response headers (bigger than default 512K limit) -SecResponseBodyLimit 2000000 - - - - -The back-end is a server-side CGI application that takes Python script -source code as input, executes the entire script (up to 200 executed -lines, to prevent infinite loops), and collects a full trace of all -variable values (i.e., data structures) after each line has been -executed. It then sends that full trace to the front-end in a -specially-encoded JSON format. The front-end then parses and visualizes -that trace and allows the user to single-step forwards AND backwards -through execution. - -The back-end resides in the cgi-bin/ sub-directory in this repository: - - cgi-bin/web_exec.py - the CGI entrance point to the back-end - cgi-bin/web_run_test.py - the CGI entrance point to the question - grading back-end - cgi-bin/pg_logger.py - the 'meat' of the back-end - cgi-bin/pg_encoder.py - encodes Python data into JSON - cgi-bin/demjson.py - 3rd-party JSON module, since Python 2.5 - doesn't have the built-in 'import json' - cgi-bin/create_db.py - for optional sqlite query logging - cgi-bin/db_common.py - for optional sqlite query logging - cgi-bin/.htaccess - for Apache CGI execute permissions - - -Due to the AJAX same-origin policy, the front-end and back-end must be -deployed on the same server (unless you do some fancy proxy magic). - - -====== -Original founding vision (from January 2010): +--- +All documentation is viewable online at: + https://github.com/pgbovine/OnlinePythonTutor/tree/master/v3/docs -I want to create a web-based interactive learning platform for students -to explore programming. I envision an HTML UI where a student can enter -in code and then single-step through it and see how the data structures -change during execution. +--- +Repository contents: -Key insight: I realized that for the small programs that teachers and -students write for educational purposes, it's possible to simply LOG -everything that happens to data structures during execution. Then we -can simply play back that log in the front-end, which allows -single-stepping forwards and also BACKWARDS. + tl;dr: the v3/ sub-directory contains the latest version of the code. -After all, we don't need students to be able to interactive probe and -make changes in the middle of execution, which is the only value-added -of a REAL debugger. +v1-v2/ -What kinds of things do we want to log? + Online Python Tutor version 1 - released on January 19, 2010 + "Release" email to 15 friends: - On the execution of each line, log: - - the line number just executed - - all data created by the program + Subject: version 0.0000001alpha of my online Python tutor + Body: + ''' + hi python fans (and non-fans) ... - Also log calls and returns of a student's function - (but NOT library functions) + this is what i've been hacking on for the past few days instead of + doing my research ;) i'm planning to use it as a platform for + creating interactive online programming tutorials as part of a + volunteer project ... + + http://python.pgrind.com/ -We can use the Python JSON module to encode data structures in JSON and -send it to the client's web browser + it'd be great to get your feedback on what i have so far. i'd love + to hear suggestions or complaints. thanks in advance! -The PDB debugger (Lib/pdb.py) is written in pure Python: - http://docs.python.org/library/pdb.html - - the bdb debugger framework is the C module that pdb calls - http://docs.python.org/library/bdb.html + please don't share this link yet, mostly because my app is still + buggy and insecure (i definitely don't want random peoples from the + internet trying to hack it right now!) + pg + ''' + + + Online Python Tutor version 2 - released on October 4, 2011 + "Release" email to 13 friends: + + Subject: Re: version 0.0000001alpha of my online Python tutor + Body: + ''' + Dear subset of people who cared about my prior email from almost 2 + years ago ... + + I've recently kicked it up a notch with a "2.0" version and am about + to do a public release soon. I'd really appreciate any feedback, + criticism, and especially bug reports on Internet Explorer ;) + + http://people.csail.mit.edu/pgbovine/opt-prerelease/ + + Please don't share the link yet since it will be dead soon when I + move this app to its permanent home. I just want to get some early + feedback to eliminate the obviously embarrassing bugs before launch. + + THANKS! + + pg + ''' + + +v3/ + + Online Python Tutor version 3 - Released on September 18, 2012 + to 153,000+ people on Google+: + https://plus.google.com/+ResearchatGoogle/posts/cseo9qi7LWq + + "Release" announcement from the Research @ Google G+ account: + ''' + Online Python Tutor: Web-Based Program Visualization for CS Education + + As part of his CS education work at Google, +Philip Guo has been + developing an open-source educational tool called Online Python Tutor + (http://www.pythontutor.com). This tool enables teachers and students + to write Python programs directly in the web browser and then + single-step forwards and backwards to visualize what the computer is + doing as it executes those programs. + + Program visualization for CS education is nothing new -- researchers + have been developing these sorts of tools for decades. However, most + of these tools never reach far beyond the confines of the researchers' + home universities due to the difficulty of installing and configuring + the visualization software. What makes Online Python Tutor unique and + effective is that it's the first known tool to adapt time-tested ideas + from the research literature (e.g., rendering of box-and-pointer + diagrams) for a web-based environment. Now anyone with a modern + browser can create, explore, and share their program visualizations by + simply visiting a web URL. + + This ease of access has been a major contributor to adoption: So far, + over 100,000 people have used Online Python Tutor to understand and + debug their programs, often as a supplement to learning from + textbooks, lecture notes, and online programming tutorials. In + addition, instructors in over a dozen universities such as MIT, UC + Berkeley, and the University of Washington have used it for teaching + introductory computer science courses. + + But this is just the beginning. Philip and his colleagues are now + building an online authoring environment so that, within the next few + months, teachers and students will be able to save their code snippets + and add annotations, discussion threads, lessons, and interactive + exercises on top of the associated visualizations. + + They are also actively seeking partnerships with educators at all + grade levels to deploy and improve Online Python Tutor. Please contact + Philip directly or re-share this post with educators who might be + interested in working with this tool in any capacity. + + Visit www.pythontutor.com to learn more and to start visualizing your + Python programs now! + ''' + +--- +Acknowledgments + +John DeNero - for helping with the official Python 3 port and lots of code patches +Chris Horne - https://github.com/lahwran - for security tips +Peter Wentworth and his students - for working on the original Python 3 fork +Brad Miller - for adding pop-up question dialogs to visualizations +David Pritchard - for some enhancements to front-end +Peter Robinson - for v3/make_visualizations.py +Chris Meyers - for custom visualizations such as v3/matrix.py and v3/htmlFrame.py +Irene Chen - for holistic visualization mode -- v3/js/holistic.js + + +For advice and feedback from an instructor's perspective: + +Jennifer Campbell +John Dalbey +Fredo Durand +Michael Ernst +David Evans +Paul Gries +Adam Hartz +Tomas Lozano-Perez +Bertram Ludaescher +Brad Miller +Rob Miller +Peter Norvig +Andrew Petersen +David Pritchard +Suzanne Rivoire +David Wilkins diff --git a/cgi-bin/demjson.py b/cgi-bin/demjson.py deleted file mode 100644 index a513ee134..000000000 --- a/cgi-bin/demjson.py +++ /dev/null @@ -1,2138 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -r""" A JSON data encoder and decoder. - - This Python module implements the JSON (http://json.org/) data - encoding format; a subset of ECMAScript (aka JavaScript) for encoding - primitive data types (numbers, strings, booleans, lists, and - associative arrays) in a language-neutral simple text-based syntax. - - It can encode or decode between JSON formatted strings and native - Python data types. Normally you would use the encode() and decode() - functions defined by this module, but if you want more control over - the processing you can use the JSON class. - - This implementation tries to be as completely cormforming to all - intricacies of the standards as possible. It can operate in strict - mode (which only allows JSON-compliant syntax) or a non-strict mode - (which allows much more of the whole ECMAScript permitted syntax). - This includes complete support for Unicode strings (including - surrogate-pairs for non-BMP characters), and all number formats - including negative zero and IEEE 754 non-numbers such a NaN or - Infinity. - - The JSON/ECMAScript to Python type mappings are: - ---JSON--- ---Python--- - null None - undefined undefined (note 1) - Boolean (true,false) bool (True or False) - Integer int or long (note 2) - Float float - String str or unicode ( "..." or u"..." ) - Array [a, ...] list ( [...] ) - Object {a:b, ...} dict ( {...} ) - - -- Note 1. an 'undefined' object is declared in this module which - represents the native Python value for this type when in - non-strict mode. - - -- Note 2. some ECMAScript integers may be up-converted to Python - floats, such as 1e+40. Also integer -0 is converted to - float -0, so as to preserve the sign (which ECMAScript requires). - - In addition, when operating in non-strict mode, several IEEE 754 - non-numbers are also handled, and are mapped to specific Python - objects declared in this module: - - NaN (not a number) nan (float('nan')) - Infinity, +Infinity inf (float('inf')) - -Infinity neginf (float('-inf')) - - When encoding Python objects into JSON, you may use types other than - native lists or dictionaries, as long as they support the minimal - interfaces required of all sequences or mappings. This means you can - use generators and iterators, tuples, UserDict subclasses, etc. - - To make it easier to produce JSON encoded representations of user - defined classes, if the object has a method named json_equivalent(), - then it will call that method and attempt to encode the object - returned from it instead. It will do this recursively as needed and - before any attempt to encode the object using it's default - strategies. Note that any json_equivalent() method should return - "equivalent" Python objects to be encoded, not an already-encoded - JSON-formatted string. There is no such aid provided to decode - JSON back into user-defined classes as that would dramatically - complicate the interface. - - When decoding strings with this module it may operate in either - strict or non-strict mode. The strict mode only allows syntax which - is conforming to RFC 4627 (JSON), while the non-strict allows much - more of the permissible ECMAScript syntax. - - The following are permitted when processing in NON-STRICT mode: - - * Unicode format control characters are allowed anywhere in the input. - * All Unicode line terminator characters are recognized. - * All Unicode white space characters are recognized. - * The 'undefined' keyword is recognized. - * Hexadecimal number literals are recognized (e.g., 0xA6, 0177). - * String literals may use either single or double quote marks. - * Strings may contain \x (hexadecimal) escape sequences, as well as the - \v and \0 escape sequences. - * Lists may have omitted (elided) elements, e.g., [,,,,,], with - missing elements interpreted as 'undefined' values. - * Object properties (dictionary keys) can be of any of the - types: string literals, numbers, or identifiers (the later of - which are treated as if they are string literals)---as permitted - by ECMAScript. JSON only permits strings literals as keys. - - Concerning non-strict and non-ECMAScript allowances: - - * Octal numbers: If you allow the 'octal_numbers' behavior (which - is never enabled by default), then you can use octal integers - and octal character escape sequences (per the ECMAScript - standard Annex B.1.2). This behavior is allowed, if enabled, - because it was valid JavaScript at one time. - - * Multi-line string literals: Strings which are more than one - line long (contain embedded raw newline characters) are never - permitted. This is neither valid JSON nor ECMAScript. Some other - JSON implementations may allow this, but this module considers - that behavior to be a mistake. - - References: - * JSON (JavaScript Object Notation) - - * RFC 4627. The application/json Media Type for JavaScript Object Notation (JSON) - - * ECMA-262 3rd edition (1999) - - * IEEE 754-1985: Standard for Binary Floating-Point Arithmetic. - - -""" - -__author__ = "Deron Meranda " -__date__ = "2008-12-17" -__version__ = "1.4" -__credits__ = """Copyright (c) 2006-2008 Deron E. Meranda -Licensed under GNU LGPL 3.0 (GNU Lesser General Public License) or -later. See LICENSE.txt included with this software. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with this program. If not, see -or . - -""" - -# ------------------------------ -# useful global constants - -content_type = 'application/json' -file_ext = 'json' -hexdigits = '0123456789ABCDEFabcdef' -octaldigits = '01234567' - -# ---------------------------------------------------------------------- -# Decimal and float types. -# -# If a JSON number can not be stored in a Python float without loosing -# precision and the Python has the decimal type, then we will try to -# use decimal instead of float. To make this determination we need to -# know the limits of the float type, but Python doesn't have an easy -# way to tell what the largest floating-point number it supports. So, -# we detemine the precision and scale of the float type by testing it. - -try: - # decimal module was introduced in Python 2.4 - import decimal -except ImportError: - decimal = None - -def determine_float_precision(): - """Returns a tuple (significant_digits, max_exponent) for the float type. - """ - import math - # Just count the digits in pi. The last two decimal digits - # may only be partial digits, so discount for them. - whole, frac = repr(math.pi).split('.') - sigdigits = len(whole) + len(frac) - 2 - - # This is a simple binary search. We find the largest exponent - # that the float() type can handle without going infinite or - # raising errors. - maxexp = None - minv = 0; maxv = 1000 - while True: - if minv+1 == maxv: - maxexp = minv - 1 - break - elif maxv < minv: - maxexp = None - break - m = (minv + maxv) // 2 - try: - f = repr(float( '1e+%d' % m )) - except ValueError: - f = None - else: - if not f or f[0] < '0' or f[0] > '9': - f = None - if not f: - # infinite - maxv = m - else: - minv = m - return sigdigits, maxexp - -float_sigdigits, float_maxexp = determine_float_precision() - -# ---------------------------------------------------------------------- -# The undefined value. -# -# ECMAScript has an undefined value (similar to yet distinct from null). -# Neither Python or strict JSON have support undefined, but to allow -# JavaScript behavior we must simulate it. - -class _undefined_class(object): - """Represents the ECMAScript 'undefined' value.""" - __slots__ = [] - def __repr__(self): - return self.__module__ + '.undefined' - def __str__(self): - return 'undefined' - def __nonzero__(self): - return False -undefined = _undefined_class() -del _undefined_class - - -# ---------------------------------------------------------------------- -# Non-Numbers: NaN, Infinity, -Infinity -# -# ECMAScript has official support for non-number floats, although -# strict JSON does not. Python doesn't either. So to support the -# full JavaScript behavior we must try to add them into Python, which -# is unfortunately a bit of black magic. If our python implementation -# happens to be built on top of IEEE 754 we can probably trick python -# into using real floats. Otherwise we must simulate it with classes. - -def _nonnumber_float_constants(): - """Try to return the Nan, Infinity, and -Infinity float values. - - This is unnecessarily complex because there is no standard - platform- independent way to do this in Python as the language - (opposed to some implementation of it) doesn't discuss - non-numbers. We try various strategies from the best to the - worst. - - If this Python interpreter uses the IEEE 754 floating point - standard then the returned values will probably be real instances - of the 'float' type. Otherwise a custom class object is returned - which will attempt to simulate the correct behavior as much as - possible. - - """ - try: - # First, try (mostly portable) float constructor. Works under - # Linux x86 (gcc) and some Unices. - nan = float('nan') - inf = float('inf') - neginf = float('-inf') - except ValueError: - try: - # Try the AIX (PowerPC) float constructors - nan = float('NaNQ') - inf = float('INF') - neginf = float('-INF') - except ValueError: - try: - # Next, try binary unpacking. Should work under - # platforms using IEEE 754 floating point. - import struct, sys - xnan = '7ff8000000000000'.decode('hex') # Quiet NaN - xinf = '7ff0000000000000'.decode('hex') - xcheck = 'bdc145651592979d'.decode('hex') # -3.14159e-11 - # Could use float.__getformat__, but it is a new python feature, - # so we use sys.byteorder. - if sys.byteorder == 'big': - nan = struct.unpack('d', xnan)[0] - inf = struct.unpack('d', xinf)[0] - check = struct.unpack('d', xcheck)[0] - else: - nan = struct.unpack('d', xnan[::-1])[0] - inf = struct.unpack('d', xinf[::-1])[0] - check = struct.unpack('d', xcheck[::-1])[0] - neginf = - inf - if check != -3.14159e-11: - raise ValueError('Unpacking raw IEEE 754 floats does not work') - except (ValueError, TypeError): - # Punt, make some fake classes to simulate. These are - # not perfect though. For instance nan * 1.0 == nan, - # as expected, but 1.0 * nan == 0.0, which is wrong. - class nan(float): - """An approximation of the NaN (not a number) floating point number.""" - def __repr__(self): return 'nan' - def __str__(self): return 'nan' - def __add__(self,x): return self - def __radd__(self,x): return self - def __sub__(self,x): return self - def __rsub__(self,x): return self - def __mul__(self,x): return self - def __rmul__(self,x): return self - def __div__(self,x): return self - def __rdiv__(self,x): return self - def __divmod__(self,x): return (self,self) - def __rdivmod__(self,x): return (self,self) - def __mod__(self,x): return self - def __rmod__(self,x): return self - def __pow__(self,exp): return self - def __rpow__(self,exp): return self - def __neg__(self): return self - def __pos__(self): return self - def __abs__(self): return self - def __lt__(self,x): return False - def __le__(self,x): return False - def __eq__(self,x): return False - def __neq__(self,x): return True - def __ge__(self,x): return False - def __gt__(self,x): return False - def __complex__(self,*a): raise NotImplementedError('NaN can not be converted to a complex') - if decimal: - nan = decimal.Decimal('NaN') - else: - nan = nan() - class inf(float): - """An approximation of the +Infinity floating point number.""" - def __repr__(self): return 'inf' - def __str__(self): return 'inf' - def __add__(self,x): return self - def __radd__(self,x): return self - def __sub__(self,x): return self - def __rsub__(self,x): return self - def __mul__(self,x): - if x is neginf or x < 0: - return neginf - elif x == 0: - return nan - else: - return self - def __rmul__(self,x): return self.__mul__(x) - def __div__(self,x): - if x == 0: - raise ZeroDivisionError('float division') - elif x < 0: - return neginf - else: - return self - def __rdiv__(self,x): - if x is inf or x is neginf or x is nan: - return nan - return 0.0 - def __divmod__(self,x): - if x == 0: - raise ZeroDivisionError('float divmod()') - elif x < 0: - return (nan,nan) - else: - return (self,self) - def __rdivmod__(self,x): - if x is inf or x is neginf or x is nan: - return (nan, nan) - return (0.0, x) - def __mod__(self,x): - if x == 0: - raise ZeroDivisionError('float modulo') - else: - return nan - def __rmod__(self,x): - if x is inf or x is neginf or x is nan: - return nan - return x - def __pow__(self, exp): - if exp == 0: - return 1.0 - else: - return self - def __rpow__(self, x): - if -1 < x < 1: return 0.0 - elif x == 1.0: return 1.0 - elif x is nan or x is neginf or x < 0: - return nan - else: - return self - def __neg__(self): return neginf - def __pos__(self): return self - def __abs__(self): return self - def __lt__(self,x): return False - def __le__(self,x): - if x is self: - return True - else: - return False - def __eq__(self,x): - if x is self: - return True - else: - return False - def __neq__(self,x): - if x is self: - return False - else: - return True - def __ge__(self,x): return True - def __gt__(self,x): return True - def __complex__(self,*a): raise NotImplementedError('Infinity can not be converted to a complex') - if decimal: - inf = decimal.Decimal('Infinity') - else: - inf = inf() - class neginf(float): - """An approximation of the -Infinity floating point number.""" - def __repr__(self): return '-inf' - def __str__(self): return '-inf' - def __add__(self,x): return self - def __radd__(self,x): return self - def __sub__(self,x): return self - def __rsub__(self,x): return self - def __mul__(self,x): - if x is self or x < 0: - return inf - elif x == 0: - return nan - else: - return self - def __rmul__(self,x): return self.__mul__(self) - def __div__(self,x): - if x == 0: - raise ZeroDivisionError('float division') - elif x < 0: - return inf - else: - return self - def __rdiv__(self,x): - if x is inf or x is neginf or x is nan: - return nan - return -0.0 - def __divmod__(self,x): - if x == 0: - raise ZeroDivisionError('float divmod()') - elif x < 0: - return (nan,nan) - else: - return (self,self) - def __rdivmod__(self,x): - if x is inf or x is neginf or x is nan: - return (nan, nan) - return (-0.0, x) - def __mod__(self,x): - if x == 0: - raise ZeroDivisionError('float modulo') - else: - return nan - def __rmod__(self,x): - if x is inf or x is neginf or x is nan: - return nan - return x - def __pow__(self,exp): - if exp == 0: - return 1.0 - else: - return self - def __rpow__(self, x): - if x is nan or x is inf or x is inf: - return nan - return 0.0 - def __neg__(self): return inf - def __pos__(self): return self - def __abs__(self): return inf - def __lt__(self,x): return True - def __le__(self,x): return True - def __eq__(self,x): - if x is self: - return True - else: - return False - def __neq__(self,x): - if x is self: - return False - else: - return True - def __ge__(self,x): - if x is self: - return True - else: - return False - def __gt__(self,x): return False - def __complex__(self,*a): raise NotImplementedError('-Infinity can not be converted to a complex') - if decimal: - neginf = decimal.Decimal('-Infinity') - else: - neginf = neginf(0) - return nan, inf, neginf - -nan, inf, neginf = _nonnumber_float_constants() -del _nonnumber_float_constants - - -# ---------------------------------------------------------------------- -# String processing helpers - -unsafe_string_chars = '"\\' + ''.join([chr(i) for i in range(0x20)]) -def skipstringsafe( s, start=0, end=None ): - i = start - #if end is None: - # end = len(s) - while i < end and s[i] not in unsafe_string_chars: - #c = s[i] - #if c in unsafe_string_chars: - # break - i += 1 - return i -def skipstringsafe_slow( s, start=0, end=None ): - i = start - if end is None: - end = len(s) - while i < end: - c = s[i] - if c == '"' or c == '\\' or ord(c) <= 0x1f: - break - i += 1 - return i - -def extend_list_with_sep( orig_seq, extension_seq, sepchar='' ): - if not sepchar: - orig_seq.extend( extension_seq ) - else: - for i, x in enumerate(extension_seq): - if i > 0: - orig_seq.append( sepchar ) - orig_seq.append( x ) - -def extend_and_flatten_list_with_sep( orig_seq, extension_seq, separator='' ): - for i, part in enumerate(extension_seq): - if i > 0 and separator: - orig_seq.append( separator ) - orig_seq.extend( part ) - - -# ---------------------------------------------------------------------- -# Unicode helpers -# -# JSON requires that all JSON implementations must support the UTF-32 -# encoding (as well as UTF-8 and UTF-16). But earlier versions of -# Python did not provide a UTF-32 codec. So we must implement UTF-32 -# ourselves in case we need it. - -def utf32le_encode( obj, errors='strict' ): - """Encodes a Unicode string into a UTF-32LE encoded byte string.""" - import struct - try: - import cStringIO as sio - except ImportError: - import StringIO as sio - f = sio.StringIO() - write = f.write - pack = struct.pack - for c in obj: - n = ord(c) - if 0xD800 <= n <= 0xDFFF: # surrogate codepoints are prohibited by UTF-32 - if errors == 'ignore': - continue - elif errors == 'replace': - n = ord('?') - else: - cname = 'U+%04X'%n - raise UnicodeError('UTF-32 can not encode surrogate characters',cname) - write( pack('L', n) ) - return f.getvalue() - - -def utf32le_decode( obj, errors='strict' ): - """Decodes a UTF-32LE byte string into a Unicode string.""" - if len(obj) % 4 != 0: - raise UnicodeError('UTF-32 decode error, data length not a multiple of 4 bytes') - import struct - unpack = struct.unpack - chars = [] - i = 0 - for i in range(0, len(obj), 4): - seq = obj[i:i+4] - n = unpack('L',seq)[0] - chars.append( unichr(n) ) - return u''.join( chars ) - - -def auto_unicode_decode( s ): - """Takes a string and tries to convert it to a Unicode string. - - This will return a Python unicode string type corresponding to the - input string (either str or unicode). The character encoding is - guessed by looking for either a Unicode BOM prefix, or by the - rules specified by RFC 4627. When in doubt it is assumed the - input is encoded in UTF-8 (the default for JSON). - - """ - if isinstance(s, unicode): - return s - if len(s) < 4: - return s.decode('utf8') # not enough bytes, assume default of utf-8 - # Look for BOM marker - import codecs - bom2 = s[:2] - bom4 = s[:4] - a, b, c, d = map(ord, s[:4]) # values of first four bytes - if bom4 == codecs.BOM_UTF32_LE: - encoding = 'utf-32le' - s = s[4:] - elif bom4 == codecs.BOM_UTF32_BE: - encoding = 'utf-32be' - s = s[4:] - elif bom2 == codecs.BOM_UTF16_LE: - encoding = 'utf-16le' - s = s[2:] - elif bom2 == codecs.BOM_UTF16_BE: - encoding = 'utf-16be' - s = s[2:] - # No BOM, so autodetect encoding used by looking at first four bytes - # according to RFC 4627 section 3. - elif a==0 and b==0 and c==0 and d!=0: # UTF-32BE - encoding = 'utf-32be' - elif a==0 and b!=0 and c==0 and d!=0: # UTF-16BE - encoding = 'utf-16be' - elif a!=0 and b==0 and c==0 and d==0: # UTF-32LE - encoding = 'utf-32le' - elif a!=0 and b==0 and c!=0 and d==0: # UTF-16LE - encoding = 'utf-16le' - else: #if a!=0 and b!=0 and c!=0 and d!=0: # UTF-8 - # JSON spec says default is UTF-8, so always guess it - # if we can't guess otherwise - encoding = 'utf8' - # Make sure the encoding is supported by Python - try: - cdk = codecs.lookup(encoding) - except LookupError: - if encoding.startswith('utf-32') \ - or encoding.startswith('ucs4') \ - or encoding.startswith('ucs-4'): - # Python doesn't natively have a UTF-32 codec, but JSON - # requires that it be supported. So we must decode these - # manually. - if encoding.endswith('le'): - unis = utf32le_decode(s) - else: - unis = utf32be_decode(s) - else: - raise JSONDecodeError('this python has no codec for this character encoding',encoding) - else: - # Convert to unicode using a standard codec - unis = s.decode(encoding) - return unis - - -def surrogate_pair_as_unicode( c1, c2 ): - """Takes a pair of unicode surrogates and returns the equivalent unicode character. - - The input pair must be a surrogate pair, with c1 in the range - U+D800 to U+DBFF and c2 in the range U+DC00 to U+DFFF. - - """ - n1, n2 = ord(c1), ord(c2) - if n1 < 0xD800 or n1 > 0xDBFF or n2 < 0xDC00 or n2 > 0xDFFF: - raise JSONDecodeError('illegal Unicode surrogate pair',(c1,c2)) - a = n1 - 0xD800 - b = n2 - 0xDC00 - v = (a << 10) | b - v += 0x10000 - return unichr(v) - - -def unicode_as_surrogate_pair( c ): - """Takes a single unicode character and returns a sequence of surrogate pairs. - - The output of this function is a tuple consisting of one or two unicode - characters, such that if the input character is outside the BMP range - then the output is a two-character surrogate pair representing that character. - - If the input character is inside the BMP then the output tuple will have - just a single character...the same one. - - """ - n = ord(c) - if n < 0x10000: - return (unichr(n),) # in BMP, surrogate pair not required - v = n - 0x10000 - vh = (v >> 10) & 0x3ff # highest 10 bits - vl = v & 0x3ff # lowest 10 bits - w1 = 0xD800 | vh - w2 = 0xDC00 | vl - return (unichr(w1), unichr(w2)) - - -# ---------------------------------------------------------------------- -# Type identification - -def isnumbertype( obj ): - """Is the object of a Python number type (excluding complex)?""" - return isinstance(obj, (int,long,float)) \ - and not isinstance(obj, bool) \ - or obj is nan or obj is inf or obj is neginf - - -def isstringtype( obj ): - """Is the object of a Python string type?""" - if isinstance(obj, basestring): - return True - # Must also check for some other pseudo-string types - import types, UserString - return isinstance(obj, types.StringTypes) \ - or isinstance(obj, UserString.UserString) \ - or isinstance(obj, UserString.MutableString) - - -# ---------------------------------------------------------------------- -# Numeric helpers - -def decode_hex( hexstring ): - """Decodes a hexadecimal string into it's integer value.""" - # We don't use the builtin 'hex' codec in python since it can - # not handle odd numbers of digits, nor raise the same type - # of exceptions we want to. - n = 0 - for c in hexstring: - if '0' <= c <= '9': - d = ord(c) - ord('0') - elif 'a' <= c <= 'f': - d = ord(c) - ord('a') + 10 - elif 'A' <= c <= 'F': - d = ord(c) - ord('A') + 10 - else: - raise JSONDecodeError('not a hexadecimal number',hexstring) - # Could use ((n << 4 ) | d), but python 2.3 issues a FutureWarning. - n = (n * 16) + d - return n - - -def decode_octal( octalstring ): - """Decodes an octal string into it's integer value.""" - n = 0 - for c in octalstring: - if '0' <= c <= '7': - d = ord(c) - ord('0') - else: - raise JSONDecodeError('not an octal number',octalstring) - # Could use ((n << 3 ) | d), but python 2.3 issues a FutureWarning. - n = (n * 8) + d - return n - - -# ---------------------------------------------------------------------- -# Exception classes. - -class JSONError(ValueError): - """Our base class for all JSON-related errors. - - """ - def pretty_description(self): - err = self.args[0] - if len(self.args) > 1: - err += ': ' - for anum, a in enumerate(self.args[1:]): - if anum > 1: - err += ', ' - astr = repr(a) - if len(astr) > 20: - astr = astr[:20] + '...' - err += astr - return err - -class JSONDecodeError(JSONError): - """An exception class raised when a JSON decoding error (syntax error) occurs.""" - - -class JSONEncodeError(JSONError): - """An exception class raised when a python object can not be encoded as a JSON string.""" - - -#---------------------------------------------------------------------- -# The main JSON encoder/decoder class. - -class JSON(object): - """An encoder/decoder for JSON data streams. - - Usually you will call the encode() or decode() methods. The other - methods are for lower-level processing. - - Whether the JSON parser runs in strict mode (which enforces exact - compliance with the JSON spec) or the more forgiving non-string mode - can be affected by setting the 'strict' argument in the object's - initialization; or by assigning True or False to the 'strict' - property of the object. - - You can also adjust a finer-grained control over strictness by - allowing or preventing specific behaviors. You can get a list of - all the available behaviors by accessing the 'behaviors' property. - Likewise the allowed_behaviors and prevented_behaviors list which - behaviors will be allowed and which will not. Call the allow() - or prevent() methods to adjust these. - - """ - _escapes_json = { # character escapes in JSON - '"': '"', - '/': '/', - '\\': '\\', - 'b': '\b', - 'f': '\f', - 'n': '\n', - 'r': '\r', - 't': '\t', - } - - _escapes_js = { # character escapes in Javascript - '"': '"', - '\'': '\'', - '\\': '\\', - 'b': '\b', - 'f': '\f', - 'n': '\n', - 'r': '\r', - 't': '\t', - 'v': '\v', - '0': '\x00' - } - - # Following is a reverse mapping of escape characters, used when we - # output JSON. Only those escapes which are always safe (e.g., in JSON) - # are here. It won't hurt if we leave questionable ones out. - _rev_escapes = {'\n': '\\n', - '\t': '\\t', - '\b': '\\b', - '\r': '\\r', - '\f': '\\f', - '"': '\\"', - '\\': '\\\\'} - - def __init__(self, strict=False, compactly=True, escape_unicode=False): - """Creates a JSON encoder/decoder object. - - If 'strict' is set to True, then only strictly-conforming JSON - output will be produced. Note that this means that some types - of values may not be convertable and will result in a - JSONEncodeError exception. - - If 'compactly' is set to True, then the resulting string will - have all extraneous white space removed; if False then the - string will be "pretty printed" with whitespace and indentation - added to make it more readable. - - If 'escape_unicode' is set to True, then all non-ASCII characters - will be represented as a unicode escape sequence; if False then - the actual real unicode character will be inserted if possible. - - The 'escape_unicode' can also be a function, which when called - with a single argument of a unicode character will return True - if the character should be escaped or False if it should not. - - If you wish to extend the encoding to ba able to handle - additional types, you should subclass this class and override - the encode_default() method. - - """ - import sys - self._set_strictness(strict) - self._encode_compactly = compactly - try: - # see if we were passed a predicate function - b = escape_unicode(u'A') - self._encode_unicode_as_escapes = escape_unicode - except (ValueError, NameError, TypeError): - # Just set to True or False. We could use lambda x:True - # to make it more consistent (always a function), but it - # will be too slow, so we'll make explicit tests later. - self._encode_unicode_as_escapes = bool(escape_unicode) - self._sort_dictionary_keys = True - - # The following is a boolean map of the first 256 characters - # which will quickly tell us which of those characters never - # need to be escaped. - - self._asciiencodable = [32 <= c < 128 and not self._rev_escapes.has_key(chr(c)) - for c in range(0,255)] - - def _set_strictness(self, strict): - """Changes the strictness behavior. - - Pass True to be very strict about JSON syntax, or False to be looser. - """ - self._allow_any_type_at_start = not strict - self._allow_all_numeric_signs = not strict - self._allow_comments = not strict - self._allow_control_char_in_string = not strict - self._allow_hex_numbers = not strict - self._allow_initial_decimal_point = not strict - self._allow_js_string_escapes = not strict - self._allow_non_numbers = not strict - self._allow_nonescape_characters = not strict # "\z" -> "z" - self._allow_nonstring_keys = not strict - self._allow_omitted_array_elements = not strict - self._allow_single_quoted_strings = not strict - self._allow_trailing_comma_in_literal = not strict - self._allow_undefined_values = not strict - self._allow_unicode_format_control_chars = not strict - self._allow_unicode_whitespace = not strict - # Always disable this by default - self._allow_octal_numbers = False - - def allow(self, behavior): - """Allow the specified behavior (turn off a strictness check). - - The list of all possible behaviors is available in the behaviors property. - You can see which behaviors are currently allowed by accessing the - allowed_behaviors property. - - """ - p = '_allow_' + behavior - if hasattr(self, p): - setattr(self, p, True) - else: - raise AttributeError('Behavior is not known',behavior) - - def prevent(self, behavior): - """Prevent the specified behavior (turn on a strictness check). - - The list of all possible behaviors is available in the behaviors property. - You can see which behaviors are currently prevented by accessing the - prevented_behaviors property. - - """ - p = '_allow_' + behavior - if hasattr(self, p): - setattr(self, p, False) - else: - raise AttributeError('Behavior is not known',behavior) - - def _get_behaviors(self): - return sorted([ n[len('_allow_'):] for n in self.__dict__ \ - if n.startswith('_allow_')]) - behaviors = property(_get_behaviors, - doc='List of known behaviors that can be passed to allow() or prevent() methods') - - def _get_allowed_behaviors(self): - return sorted([ n[len('_allow_'):] for n in self.__dict__ \ - if n.startswith('_allow_') and getattr(self,n)]) - allowed_behaviors = property(_get_allowed_behaviors, - doc='List of known behaviors that are currently allowed') - - def _get_prevented_behaviors(self): - return sorted([ n[len('_allow_'):] for n in self.__dict__ \ - if n.startswith('_allow_') and not getattr(self,n)]) - prevented_behaviors = property(_get_prevented_behaviors, - doc='List of known behaviors that are currently prevented') - - def _is_strict(self): - return not self.allowed_behaviors - strict = property(_is_strict, _set_strictness, - doc='True if adherence to RFC 4627 syntax is strict, or False is more generous ECMAScript syntax is permitted') - - - def isws(self, c): - """Determines if the given character is considered as white space. - - Note that Javscript is much more permissive on what it considers - to be whitespace than does JSON. - - Ref. ECMAScript section 7.2 - - """ - if not self._allow_unicode_whitespace: - return c in ' \t\n\r' - else: - if not isinstance(c,unicode): - c = unicode(c) - if c in u' \t\n\r\f\v': - return True - import unicodedata - return unicodedata.category(c) == 'Zs' - - def islineterm(self, c): - """Determines if the given character is considered a line terminator. - - Ref. ECMAScript section 7.3 - - """ - if c == '\r' or c == '\n': - return True - if c == u'\u2028' or c == u'\u2029': # unicodedata.category(c) in ['Zl', 'Zp'] - return True - return False - - def strip_format_control_chars(self, txt): - """Filters out all Unicode format control characters from the string. - - ECMAScript permits any Unicode "format control characters" to - appear at any place in the source code. They are to be - ignored as if they are not there before any other lexical - tokenization occurs. Note that JSON does not allow them. - - Ref. ECMAScript section 7.1. - - """ - import unicodedata - txt2 = filter( lambda c: unicodedata.category(unicode(c)) != 'Cf', - txt ) - return txt2 - - - def decode_null(self, s, i=0): - """Intermediate-level decoder for ECMAScript 'null' keyword. - - Takes a string and a starting index, and returns a Python - None object and the index of the next unparsed character. - - """ - if i < len(s) and s[i:i+4] == 'null': - return None, i+4 - raise JSONDecodeError('literal is not the JSON "null" keyword', s) - - def encode_undefined(self): - """Produces the ECMAScript 'undefined' keyword.""" - return 'undefined' - - def encode_null(self): - """Produces the JSON 'null' keyword.""" - return 'null' - - def decode_boolean(self, s, i=0): - """Intermediate-level decode for JSON boolean literals. - - Takes a string and a starting index, and returns a Python bool - (True or False) and the index of the next unparsed character. - - """ - if s[i:i+4] == 'true': - return True, i+4 - elif s[i:i+5] == 'false': - return False, i+5 - raise JSONDecodeError('literal value is not a JSON boolean keyword',s) - - def encode_boolean(self, b): - """Encodes the Python boolean into a JSON Boolean literal.""" - if bool(b): - return 'true' - return 'false' - - def decode_number(self, s, i=0, imax=None): - """Intermediate-level decoder for JSON numeric literals. - - Takes a string and a starting index, and returns a Python - suitable numeric type and the index of the next unparsed character. - - The returned numeric type can be either of a Python int, - long, or float. In addition some special non-numbers may - also be returned such as nan, inf, and neginf (technically - which are Python floats, but have no numeric value.) - - Ref. ECMAScript section 8.5. - - """ - if imax is None: - imax = len(s) - # Detect initial sign character(s) - if not self._allow_all_numeric_signs: - if s[i] == '+' or (s[i] == '-' and i+1 < imax and \ - s[i+1] in '+-'): - raise JSONDecodeError('numbers in strict JSON may only have a single "-" as a sign prefix',s[i:]) - sign = +1 - j = i # j will point after the sign prefix - while j < imax and s[j] in '+-': - if s[j] == '-': sign = sign * -1 - j += 1 - # Check for ECMAScript symbolic non-numbers - if s[j:j+3] == 'NaN': - if self._allow_non_numbers: - return nan, j+3 - else: - raise JSONDecodeError('NaN literals are not allowed in strict JSON') - elif s[j:j+8] == 'Infinity': - if self._allow_non_numbers: - if sign < 0: - return neginf, j+8 - else: - return inf, j+8 - else: - raise JSONDecodeError('Infinity literals are not allowed in strict JSON') - elif s[j:j+2] in ('0x','0X'): - if self._allow_hex_numbers: - k = j+2 - while k < imax and s[k] in hexdigits: - k += 1 - n = sign * decode_hex( s[j+2:k] ) - return n, k - else: - raise JSONDecodeError('hexadecimal literals are not allowed in strict JSON',s[i:]) - else: - # Decimal (or octal) number, find end of number. - # General syntax is: \d+[\.\d+][e[+-]?\d+] - k = j # will point to end of digit sequence - could_be_octal = ( k+1 < imax and s[k] == '0' ) # first digit is 0 - decpt = None # index into number of the decimal point, if any - ept = None # index into number of the e|E exponent start, if any - esign = '+' # sign of exponent - sigdigits = 0 # number of significant digits (approx, counts end zeros) - while k < imax and (s[k].isdigit() or s[k] in '.+-eE'): - c = s[k] - if c not in octaldigits: - could_be_octal = False - if c == '.': - if decpt is not None or ept is not None: - break - else: - decpt = k-j - elif c in 'eE': - if ept is not None: - break - else: - ept = k-j - elif c in '+-': - if not ept: - break - esign = c - else: #digit - if not ept: - sigdigits += 1 - k += 1 - number = s[j:k] # The entire number as a string - #print 'NUMBER IS: ', repr(number), ', sign', sign, ', esign', esign, \ - # ', sigdigits', sigdigits, \ - # ', decpt', decpt, ', ept', ept - - # Handle octal integers first as an exception. If octal - # is not enabled (the ECMAScipt standard) then just do - # nothing and treat the string as a decimal number. - if could_be_octal and self._allow_octal_numbers: - n = sign * decode_octal( number ) - return n, k - - # A decimal number. Do a quick check on JSON syntax restrictions. - if number[0] == '.' and not self._allow_initial_decimal_point: - raise JSONDecodeError('numbers in strict JSON must have at least one digit before the decimal point',s[i:]) - elif number[0] == '0' and \ - len(number) > 1 and number[1].isdigit(): - if self._allow_octal_numbers: - raise JSONDecodeError('initial zero digit is only allowed for octal integers',s[i:]) - else: - raise JSONDecodeError('initial zero digit must not be followed by other digits (octal numbers are not permitted)',s[i:]) - # Make sure decimal point is followed by a digit - if decpt is not None: - if decpt+1 >= len(number) or not number[decpt+1].isdigit(): - raise JSONDecodeError('decimal point must be followed by at least one digit',s[i:]) - # Determine the exponential part - if ept is not None: - if ept+1 >= len(number): - raise JSONDecodeError('exponent in number is truncated',s[i:]) - try: - exponent = int(number[ept+1:]) - except ValueError: - raise JSONDecodeError('not a valid exponent in number',s[i:]) - ##print 'EXPONENT', exponent - else: - exponent = 0 - # Try to make an int/long first. - if decpt is None and exponent >= 0: - # An integer - if ept: - n = int(number[:ept]) - else: - n = int(number) - n *= sign - if exponent: - n *= 10**exponent - if n == 0 and sign < 0: - # minus zero, must preserve negative sign so make a float - n = -0.0 - else: - try: - if decimal and (abs(exponent) > float_maxexp or sigdigits > float_sigdigits): - try: - n = decimal.Decimal(number) - n = n.normalize() - except decimal.Overflow: - if sign<0: - n = neginf - else: - n = inf - else: - n *= sign - else: - n = float(number) * sign - except ValueError: - raise JSONDecodeError('not a valid JSON numeric literal', s[i:j]) - return n, k - - def encode_number(self, n): - """Encodes a Python numeric type into a JSON numeric literal. - - The special non-numeric values of float('nan'), float('inf') - and float('-inf') are translated into appropriate JSON - literals. - - Note that Python complex types are not handled, as there is no - ECMAScript equivalent type. - - """ - if isinstance(n, complex): - if n.imag: - raise JSONEncodeError('Can not encode a complex number that has a non-zero imaginary part',n) - n = n.real - if isinstance(n, (int,long)): - return str(n) - if decimal and isinstance(n, decimal.Decimal): - return str(n) - global nan, inf, neginf - if n is nan: - return 'NaN' - elif n is inf: - return 'Infinity' - elif n is neginf: - return '-Infinity' - elif isinstance(n, float): - # Check for non-numbers. - # In python nan == inf == -inf, so must use repr() to distinguish - reprn = repr(n).lower() - if ('inf' in reprn and '-' in reprn) or n == neginf: - return '-Infinity' - elif 'inf' in reprn or n is inf: - return 'Infinity' - elif 'nan' in reprn or n is nan: - return 'NaN' - return repr(n) - else: - raise TypeError('encode_number expected an integral, float, or decimal number type',type(n)) - - def decode_string(self, s, i=0, imax=None): - """Intermediate-level decoder for JSON string literals. - - Takes a string and a starting index, and returns a Python - string (or unicode string) and the index of the next unparsed - character. - - """ - if imax is None: - imax = len(s) - if imax < i+2 or s[i] not in '"\'': - raise JSONDecodeError('string literal must be properly quoted',s[i:]) - closer = s[i] - if closer == '\'' and not self._allow_single_quoted_strings: - raise JSONDecodeError('string literals must use double quotation marks in strict JSON',s[i:]) - i += 1 # skip quote - if self._allow_js_string_escapes: - escapes = self._escapes_js - else: - escapes = self._escapes_json - ccallowed = self._allow_control_char_in_string - chunks = [] - _append = chunks.append - done = False - high_surrogate = None - while i < imax: - c = s[i] - # Make sure a high surrogate is immediately followed by a low surrogate - if high_surrogate and (i+1 >= imax or s[i:i+2] != '\\u'): - raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i:]) - if c == closer: - i += 1 # skip end quote - done = True - break - elif c == '\\': - # Escaped character - i += 1 - if i >= imax: - raise JSONDecodeError('escape in string literal is incomplete',s[i-1:]) - c = s[i] - - if '0' <= c <= '7' and self._allow_octal_numbers: - # Handle octal escape codes first so special \0 doesn't kick in yet. - # Follow Annex B.1.2 of ECMAScript standard. - if '0' <= c <= '3': - maxdigits = 3 - else: - maxdigits = 2 - for k in range(i, i+maxdigits+1): - if k >= imax or s[k] not in octaldigits: - break - n = decode_octal(s[i:k]) - if n < 128: - _append( chr(n) ) - else: - _append( unichr(n) ) - i = k - continue - - if escapes.has_key(c): - _append(escapes[c]) - i += 1 - elif c == 'u' or c == 'x': - i += 1 - if c == 'u': - digits = 4 - else: # c== 'x' - if not self._allow_js_string_escapes: - raise JSONDecodeError(r'string literals may not use the \x hex-escape in strict JSON',s[i-1:]) - digits = 2 - if i+digits >= imax: - raise JSONDecodeError('numeric character escape sequence is truncated',s[i-1:]) - n = decode_hex( s[i:i+digits] ) - if high_surrogate: - # Decode surrogate pair and clear high surrogate - _append( surrogate_pair_as_unicode( high_surrogate, unichr(n) ) ) - high_surrogate = None - elif n < 128: - # ASCII chars always go in as a str - _append( chr(n) ) - elif 0xd800 <= n <= 0xdbff: # high surrogate - if imax < i + digits + 2 or s[i+digits] != '\\' or s[i+digits+1] != 'u': - raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i-2:]) - high_surrogate = unichr(n) # remember until we get to the low surrogate - elif 0xdc00 <= n <= 0xdfff: # low surrogate - raise JSONDecodeError('Low unicode surrogate must be proceeded by a high surrogate',s[i-2:]) - else: - # Other chars go in as a unicode char - _append( unichr(n) ) - i += digits - else: - # Unknown escape sequence - if self._allow_nonescape_characters: - _append( c ) - i += 1 - else: - raise JSONDecodeError('unsupported escape code in JSON string literal',s[i-1:]) - elif ord(c) <= 0x1f: # A control character - if self.islineterm(c): - raise JSONDecodeError('line terminator characters must be escaped inside string literals',s[i:]) - elif ccallowed: - _append( c ) - i += 1 - else: - raise JSONDecodeError('control characters must be escaped inside JSON string literals',s[i:]) - else: # A normal character; not an escape sequence or end-quote. - # Find a whole sequence of "safe" characters so we can append them - # all at once rather than one a time, for speed. - j = i - i += 1 - while i < imax and s[i] not in unsafe_string_chars and s[i] != closer: - i += 1 - _append(s[j:i]) - if not done: - raise JSONDecodeError('string literal is not terminated with a quotation mark',s) - s = ''.join( chunks ) - return s, i - - def encode_string(self, s): - """Encodes a Python string into a JSON string literal. - - """ - # Must handle instances of UserString specially in order to be - # able to use ord() on it's simulated "characters". - import UserString - if isinstance(s, (UserString.UserString, UserString.MutableString)): - def tochar(c): - return c.data - else: - # Could use "lambda c:c", but that is too slow. So we set to None - # and use an explicit if test inside the loop. - tochar = None - - chunks = [] - chunks.append('"') - revesc = self._rev_escapes - asciiencodable = self._asciiencodable - encunicode = self._encode_unicode_as_escapes - i = 0 - imax = len(s) - while i < imax: - if tochar: - c = tochar(s[i]) - else: - c = s[i] - cord = ord(c) - if cord < 256 and asciiencodable[cord] and isinstance(encunicode, bool): - # Contiguous runs of plain old printable ASCII can be copied - # directly to the JSON output without worry (unless the user - # has supplied a custom is-encodable function). - j = i - i += 1 - while i < imax: - if tochar: - c = tochar(s[i]) - else: - c = s[i] - cord = ord(c) - if cord < 256 and asciiencodable[cord]: - i += 1 - else: - break - chunks.append( unicode(s[j:i]) ) - elif revesc.has_key(c): - # Has a shortcut escape sequence, like "\n" - chunks.append(revesc[c]) - i += 1 - elif cord <= 0x1F: - # Always unicode escape ASCII-control characters - chunks.append(r'\u%04x' % cord) - i += 1 - elif 0xD800 <= cord <= 0xDFFF: - # A raw surrogate character! This should never happen - # and there's no way to include it in the JSON output. - # So all we can do is complain. - cname = 'U+%04X' % cord - raise JSONEncodeError('can not include or escape a Unicode surrogate character',cname) - elif cord <= 0xFFFF: - # Other BMP Unicode character - if isinstance(encunicode, bool): - doesc = encunicode - else: - doesc = encunicode( c ) - if doesc: - chunks.append(r'\u%04x' % cord) - else: - chunks.append( c ) - i += 1 - else: # ord(c) >= 0x10000 - # Non-BMP Unicode - if isinstance(encunicode, bool): - doesc = encunicode - else: - doesc = encunicode( c ) - if doesc: - for surrogate in unicode_as_surrogate_pair(c): - chunks.append(r'\u%04x' % ord(surrogate)) - else: - chunks.append( c ) - i += 1 - chunks.append('"') - return ''.join( chunks ) - - def skip_comment(self, txt, i=0): - """Skips an ECMAScript comment, either // or /* style. - - The contents of the comment are returned as a string, as well - as the index of the character immediately after the comment. - - """ - if i+1 >= len(txt) or txt[i] != '/' or txt[i+1] not in '/*': - return None, i - if not self._allow_comments: - raise JSONDecodeError('comments are not allowed in strict JSON',txt[i:]) - multiline = (txt[i+1] == '*') - istart = i - i += 2 - while i < len(txt): - if multiline: - if txt[i] == '*' and i+1 < len(txt) and txt[i+1] == '/': - j = i+2 - break - elif txt[i] == '/' and i+1 < len(txt) and txt[i+1] == '*': - raise JSONDecodeError('multiline /* */ comments may not nest',txt[istart:i+1]) - else: - if self.islineterm(txt[i]): - j = i # line terminator is not part of comment - break - i += 1 - - if i >= len(txt): - if not multiline: - j = len(txt) # // comment terminated by end of file is okay - else: - raise JSONDecodeError('comment was never terminated',txt[istart:]) - return txt[istart:j], j - - def skipws(self, txt, i=0, imax=None, skip_comments=True): - """Skips whitespace. - """ - if not self._allow_comments and not self._allow_unicode_whitespace: - if imax is None: - imax = len(txt) - while i < imax and txt[i] in ' \r\n\t': - i += 1 - return i - else: - return self.skipws_any(txt, i, imax, skip_comments) - - def skipws_any(self, txt, i=0, imax=None, skip_comments=True): - """Skips all whitespace, including comments and unicode whitespace - - Takes a string and a starting index, and returns the index of the - next non-whitespace character. - - If skip_comments is True and not running in strict JSON mode, then - comments will be skipped over just like whitespace. - - """ - if imax is None: - imax = len(txt) - while i < imax: - if txt[i] == '/': - cmt, i = self.skip_comment(txt, i) - if i < imax and self.isws(txt[i]): - i += 1 - else: - break - return i - - def decode_composite(self, txt, i=0, imax=None): - """Intermediate-level JSON decoder for composite literal types (array and object). - - Takes text and a starting index, and returns either a Python list or - dictionary and the index of the next unparsed character. - - """ - if imax is None: - imax = len(txt) - i = self.skipws(txt, i, imax) - starti = i - if i >= imax or txt[i] not in '{[': - raise JSONDecodeError('composite object must start with "[" or "{"',txt[i:]) - if txt[i] == '[': - isdict = False - closer = ']' - obj = [] - else: - isdict = True - closer = '}' - obj = {} - i += 1 # skip opener - i = self.skipws(txt, i, imax) - - if i < imax and txt[i] == closer: - # empty composite - i += 1 - done = True - else: - saw_value = False # set to false at beginning and after commas - done = False - while i < imax: - i = self.skipws(txt, i, imax) - if i < imax and (txt[i] == ',' or txt[i] == closer): - c = txt[i] - i += 1 - if c == ',': - if not saw_value: - # no preceeding value, an elided (omitted) element - if isdict: - raise JSONDecodeError('can not omit elements of an object (dictionary)') - if self._allow_omitted_array_elements: - if self._allow_undefined_values: - obj.append( undefined ) - else: - obj.append( None ) - else: - raise JSONDecodeError('strict JSON does not permit omitted array (list) elements',txt[i:]) - saw_value = False - continue - else: # c == closer - if not saw_value and not self._allow_trailing_comma_in_literal: - if isdict: - raise JSONDecodeError('strict JSON does not allow a final comma in an object (dictionary) literal',txt[i-2:]) - else: - raise JSONDecodeError('strict JSON does not allow a final comma in an array (list) literal',txt[i-2:]) - done = True - break - - # Decode the item - if isdict and self._allow_nonstring_keys: - r = self.decodeobj(txt, i, identifier_as_string=True) - else: - r = self.decodeobj(txt, i, identifier_as_string=False) - if r: - if saw_value: - # two values without a separating comma - raise JSONDecodeError('values must be separated by a comma', txt[i:r[1]]) - saw_value = True - i = self.skipws(txt, r[1], imax) - if isdict: - key = r[0] # Ref 11.1.5 - if not isstringtype(key): - if isnumbertype(key): - if not self._allow_nonstring_keys: - raise JSONDecodeError('strict JSON only permits string literals as object properties (dictionary keys)',txt[starti:]) - else: - raise JSONDecodeError('object properties (dictionary keys) must be either string literals or numbers',txt[starti:]) - if i >= imax or txt[i] != ':': - raise JSONDecodeError('object property (dictionary key) has no value, expected ":"',txt[starti:]) - i += 1 - i = self.skipws(txt, i, imax) - rval = self.decodeobj(txt, i) - if rval: - i = self.skipws(txt, rval[1], imax) - obj[key] = rval[0] - else: - raise JSONDecodeError('object property (dictionary key) has no value',txt[starti:]) - else: # list - obj.append( r[0] ) - else: # not r - if isdict: - raise JSONDecodeError('expected a value, or "}"',txt[i:]) - elif not self._allow_omitted_array_elements: - raise JSONDecodeError('expected a value or "]"',txt[i:]) - else: - raise JSONDecodeError('expected a value, "," or "]"',txt[i:]) - # end while - if not done: - if isdict: - raise JSONDecodeError('object literal (dictionary) is not terminated',txt[starti:]) - else: - raise JSONDecodeError('array literal (list) is not terminated',txt[starti:]) - return obj, i - - def decode_javascript_identifier(self, name): - """Convert a JavaScript identifier into a Python string object. - - This method can be overriden by a subclass to redefine how JavaScript - identifiers are turned into Python objects. By default this just - converts them into strings. - - """ - return name - - def decodeobj(self, txt, i=0, imax=None, identifier_as_string=False, only_object_or_array=False): - """Intermediate-level JSON decoder. - - Takes a string and a starting index, and returns a two-tuple consting - of a Python object and the index of the next unparsed character. - - If there is no value at all (empty string, etc), the None is - returned instead of a tuple. - - """ - if imax is None: - imax = len(txt) - obj = None - i = self.skipws(txt, i, imax) - if i >= imax: - raise JSONDecodeError('Unexpected end of input') - c = txt[i] - - if c == '[' or c == '{': - obj, i = self.decode_composite(txt, i, imax) - elif only_object_or_array: - raise JSONDecodeError('JSON document must start with an object or array type only', txt[i:i+20]) - elif c == '"' or c == '\'': - obj, i = self.decode_string(txt, i, imax) - elif c.isdigit() or c in '.+-': - obj, i = self.decode_number(txt, i, imax) - elif c.isalpha() or c in'_$': - j = i - while j < imax and (txt[j].isalnum() or txt[j] in '_$'): - j += 1 - kw = txt[i:j] - if kw == 'null': - obj, i = None, j - elif kw == 'true': - obj, i = True, j - elif kw == 'false': - obj, i = False, j - elif kw == 'undefined': - if self._allow_undefined_values: - obj, i = undefined, j - else: - raise JSONDecodeError('strict JSON does not allow undefined elements',txt[i:]) - elif kw == 'NaN' or kw == 'Infinity': - obj, i = self.decode_number(txt, i) - else: - if identifier_as_string: - obj, i = self.decode_javascript_identifier(kw), j - else: - raise JSONDecodeError('unknown keyword or identifier',kw) - else: - raise JSONDecodeError('can not decode value',txt[i:]) - return obj, i - - - - def decode(self, txt): - """Decodes a JSON-endoded string into a Python object.""" - if self._allow_unicode_format_control_chars: - txt = self.strip_format_control_chars(txt) - r = self.decodeobj(txt, 0, only_object_or_array=not self._allow_any_type_at_start) - if not r: - raise JSONDecodeError('can not decode value',txt) - else: - obj, i = r - i = self.skipws(txt, i) - if i < len(txt): - raise JSONDecodeError('unexpected or extra text',txt[i:]) - return obj - - def encode(self, obj, nest_level=0): - """Encodes the Python object into a JSON string representation. - - This method will first attempt to encode an object by seeing - if it has a json_equivalent() method. If so than it will - call that method and then recursively attempt to encode - the object resulting from that call. - - Next it will attempt to determine if the object is a native - type or acts like a squence or dictionary. If so it will - encode that object directly. - - Finally, if no other strategy for encoding the object of that - type exists, it will call the encode_default() method. That - method currently raises an error, but it could be overridden - by subclasses to provide a hook for extending the types which - can be encoded. - - """ - chunks = [] - self.encode_helper(chunks, obj, nest_level) - return ''.join( chunks ) - - def encode_helper(self, chunklist, obj, nest_level): - #print 'encode_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) - if hasattr(obj, 'json_equivalent'): - json = self.encode_equivalent( obj, nest_level=nest_level ) - if json is not None: - chunklist.append( json ) - return - if obj is None: - chunklist.append( self.encode_null() ) - elif obj is undefined: - if self._allow_undefined_values: - chunklist.append( self.encode_undefined() ) - else: - raise JSONEncodeError('strict JSON does not permit "undefined" values') - elif isinstance(obj, bool): - chunklist.append( self.encode_boolean(obj) ) - elif isinstance(obj, (int,long,float,complex)) or \ - (decimal and isinstance(obj, decimal.Decimal)): - chunklist.append( self.encode_number(obj) ) - elif isinstance(obj, basestring) or isstringtype(obj): - chunklist.append( self.encode_string(obj) ) - else: - self.encode_composite(chunklist, obj, nest_level) - - def encode_composite(self, chunklist, obj, nest_level): - """Encodes just dictionaries, lists, or sequences. - - Basically handles any python type for which iter() can create - an iterator object. - - This method is not intended to be called directly. Use the - encode() method instead. - - """ - #print 'encode_complex_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) - try: - # Is it a dictionary or UserDict? Try iterkeys method first. - it = obj.iterkeys() - except AttributeError: - try: - # Is it a sequence? Try to make an iterator for it. - it = iter(obj) - except TypeError: - it = None - if it is not None: - # Does it look like a dictionary? Check for a minimal dict or - # UserDict interface. - isdict = hasattr(obj, '__getitem__') and hasattr(obj, 'keys') - compactly = self._encode_compactly - if isdict: - chunklist.append('{') - if compactly: - dictcolon = ':' - else: - dictcolon = ' : ' - else: - chunklist.append('[') - #print nest_level, 'opening sequence:', repr(chunklist) - if not compactly: - indent0 = ' ' * nest_level - indent = ' ' * (nest_level+1) - chunklist.append(' ') - sequence_chunks = [] # use this to allow sorting afterwards if dict - try: # while not StopIteration - numitems = 0 - while True: - obj2 = it.next() - if obj2 is obj: - raise JSONEncodeError('trying to encode an infinite sequence',obj) - if isdict and not isstringtype(obj2): - # Check JSON restrictions on key types - if isnumbertype(obj2): - if not self._allow_nonstring_keys: - raise JSONEncodeError('object properties (dictionary keys) must be strings in strict JSON',obj2) - else: - raise JSONEncodeError('object properties (dictionary keys) can only be strings or numbers in ECMAScript',obj2) - - # Encode this item in the sequence and put into item_chunks - item_chunks = [] - self.encode_helper( item_chunks, obj2, nest_level=nest_level+1 ) - if isdict: - item_chunks.append(dictcolon) - obj3 = obj[obj2] - self.encode_helper(item_chunks, obj3, nest_level=nest_level+2) - - #print nest_level, numitems, 'item:', repr(obj2) - #print nest_level, numitems, 'sequence_chunks:', repr(sequence_chunks) - #print nest_level, numitems, 'item_chunks:', repr(item_chunks) - #extend_list_with_sep(sequence_chunks, item_chunks) - sequence_chunks.append(item_chunks) - #print nest_level, numitems, 'new sequence_chunks:', repr(sequence_chunks) - numitems += 1 - except StopIteration: - pass - - if isdict and self._sort_dictionary_keys: - sequence_chunks.sort() # Note sorts by JSON repr, not original Python object - if compactly: - sep = ',' - else: - sep = ',\n' + indent - - #print nest_level, 'closing sequence' - #print nest_level, 'chunklist:', repr(chunklist) - #print nest_level, 'sequence_chunks:', repr(sequence_chunks) - extend_and_flatten_list_with_sep( chunklist, sequence_chunks, sep ) - #print nest_level, 'new chunklist:', repr(chunklist) - - if not compactly: - if numitems > 1: - chunklist.append('\n' + indent0) - else: - chunklist.append(' ') - if isdict: - chunklist.append('}') - else: - chunklist.append(']') - else: # Can't create an iterator for the object - json2 = self.encode_default( obj, nest_level=nest_level ) - chunklist.append( json2 ) - - def encode_equivalent( self, obj, nest_level=0 ): - """This method is used to encode user-defined class objects. - - The object being encoded should have a json_equivalent() - method defined which returns another equivalent object which - is easily JSON-encoded. If the object in question has no - json_equivalent() method available then None is returned - instead of a string so that the encoding will attempt the next - strategy. - - If a caller wishes to disable the calling of json_equivalent() - methods, then subclass this class and override this method - to just return None. - - """ - if hasattr(obj, 'json_equivalent') \ - and callable(getattr(obj,'json_equivalent')): - obj2 = obj.json_equivalent() - if obj2 is obj: - # Try to prevent careless infinite recursion - raise JSONEncodeError('object has a json_equivalent() method that returns itself',obj) - json2 = self.encode( obj2, nest_level=nest_level ) - return json2 - else: - return None - - def encode_default( self, obj, nest_level=0 ): - """This method is used to encode objects into JSON which are not straightforward. - - This method is intended to be overridden by subclasses which wish - to extend this encoder to handle additional types. - - """ - raise JSONEncodeError('can not encode object into a JSON representation',obj) - - -# ------------------------------ - -def encode( obj, strict=False, compactly=True, escape_unicode=False, encoding=None ): - """Encodes a Python object into a JSON-encoded string. - - If 'strict' is set to True, then only strictly-conforming JSON - output will be produced. Note that this means that some types - of values may not be convertable and will result in a - JSONEncodeError exception. - - If 'compactly' is set to True, then the resulting string will - have all extraneous white space removed; if False then the - string will be "pretty printed" with whitespace and indentation - added to make it more readable. - - If 'escape_unicode' is set to True, then all non-ASCII characters - will be represented as a unicode escape sequence; if False then - the actual real unicode character will be inserted. - - If no encoding is specified (encoding=None) then the output will - either be a Python string (if entirely ASCII) or a Python unicode - string type. - - However if an encoding name is given then the returned value will - be a python string which is the byte sequence encoding the JSON - value. As the default/recommended encoding for JSON is UTF-8, - you should almost always pass in encoding='utf8'. - - """ - import sys - encoder = None # Custom codec encoding function - bom = None # Byte order mark to prepend to final output - cdk = None # Codec to use - if encoding is not None: - import codecs - try: - cdk = codecs.lookup(encoding) - except LookupError: - cdk = None - - if cdk: - pass - elif not cdk: - # No built-in codec was found, see if it is something we - # can do ourself. - encoding = encoding.lower() - if encoding.startswith('utf-32') or encoding.startswith('utf32') \ - or encoding.startswith('ucs4') \ - or encoding.startswith('ucs-4'): - # Python doesn't natively have a UTF-32 codec, but JSON - # requires that it be supported. So we must decode these - # manually. - if encoding.endswith('le'): - encoder = utf32le_encode - elif encoding.endswith('be'): - encoder = utf32be_encode - else: - encoder = utf32be_encode - bom = codecs.BOM_UTF32_BE - elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): - # Python has no UCS-2, but we can simulate with - # UTF-16. We just need to force us to not try to - # encode anything past the BMP. - encoding = 'utf-16' - if not escape_unicode and not callable(escape_unicode): - escape_unicode = lambda c: (0xD800 <= ord(c) <= 0xDFFF) or ord(c) >= 0x10000 - else: - raise JSONEncodeError('this python has no codec for this character encoding',encoding) - - if not escape_unicode and not callable(escape_unicode): - if encoding and encoding.startswith('utf'): - # All UTF-x encodings can do the whole Unicode repertoire, so - # do nothing special. - pass - else: - # Even though we don't want to escape all unicode chars, - # the encoding being used may force us to do so anyway. - # We must pass in a function which says which characters - # the encoding can handle and which it can't. - def in_repertoire( c, encoding_func ): - try: - x = encoding_func( c, errors='strict' ) - except UnicodeError: - return False - return True - if encoder: - escape_unicode = lambda c: not in_repertoire(c, encoder) - elif cdk: - escape_unicode = lambda c: not in_repertoire(c, cdk[0]) - else: - pass # Let the JSON object deal with it - - j = JSON( strict=strict, compactly=compactly, escape_unicode=escape_unicode ) - - unitxt = j.encode( obj ) - if encoder: - txt = encoder( unitxt ) - elif encoding is not None: - txt = unitxt.encode( encoding ) - else: - txt = unitxt - if bom: - txt = bom + txt - return txt - - -def decode( txt, strict=False, encoding=None, **kw ): - """Decodes a JSON-encoded string into a Python object. - - If 'strict' is set to True, then those strings that are not - entirely strictly conforming to JSON will result in a - JSONDecodeError exception. - - The input string can be either a python string or a python unicode - string. If it is already a unicode string, then it is assumed - that no character set decoding is required. - - However, if you pass in a non-Unicode text string (i.e., a python - type 'str') then an attempt will be made to auto-detect and decode - the character encoding. This will be successful if the input was - encoded in any of UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE), - and of course plain ASCII works too. - - Note though that if you know the character encoding, then you - should convert to a unicode string yourself, or pass it the name - of the 'encoding' to avoid the guessing made by the auto - detection, as with - - python_object = demjson.decode( input_bytes, encoding='utf8' ) - - Optional keywords arguments must be of the form - allow_xxxx=True/False - or - prevent_xxxx=True/False - where each will allow or prevent the specific behavior, after the - evaluation of the 'strict' argument. For example, if strict=True - then by also passing 'allow_comments=True' then comments will be - allowed. If strict=False then prevent_comments=True will allow - everything except comments. - - """ - # Initialize the JSON object - j = JSON( strict=strict ) - for keyword, value in kw.items(): - if keyword.startswith('allow_'): - behavior = keyword[6:] - allow = bool(value) - elif keyword.startswith('prevent_'): - behavior = keyword[8:] - allow = not bool(value) - else: - raise ValueError('unknown keyword argument', keyword) - if allow: - j.allow(behavior) - else: - j.prevent(behavior) - - # Convert the input string into unicode if needed. - if isinstance(txt,unicode): - unitxt = txt - else: - if encoding is None: - unitxt = auto_unicode_decode( txt ) - else: - cdk = None # codec - decoder = None - import codecs - try: - cdk = codecs.lookup(encoding) - except LookupError: - encoding = encoding.lower() - decoder = None - if encoding.startswith('utf-32') \ - or encoding.startswith('ucs4') \ - or encoding.startswith('ucs-4'): - # Python doesn't natively have a UTF-32 codec, but JSON - # requires that it be supported. So we must decode these - # manually. - if encoding.endswith('le'): - decoder = utf32le_decode - elif encoding.endswith('be'): - decoder = utf32be_decode - else: - if txt.startswith( codecs.BOM_UTF32_BE ): - decoder = utf32be_decode - txt = txt[4:] - elif txt.startswith( codecs.BOM_UTF32_LE ): - decoder = utf32le_decode - txt = txt[4:] - else: - if encoding.startswith('ucs'): - raise JSONDecodeError('UCS-4 encoded string must start with a BOM') - decoder = utf32be_decode # Default BE for UTF, per unicode spec - elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): - # Python has no UCS-2, but we can simulate with - # UTF-16. We just need to force us to not try to - # encode anything past the BMP. - encoding = 'utf-16' - - if decoder: - unitxt = decoder(txt) - elif encoding: - unitxt = txt.decode(encoding) - else: - raise JSONDecodeError('this python has no codec for this character encoding',encoding) - - # Check that the decoding seems sane. Per RFC 4627 section 3: - # "Since the first two characters of a JSON text will - # always be ASCII characters [RFC0020], ..." - # - # This check is probably not necessary, but it allows us to - # raise a suitably descriptive error rather than an obscure - # syntax error later on. - # - # Note that the RFC requirements of two ASCII characters seems - # to be an incorrect statement as a JSON string literal may - # have as it's first character any unicode character. Thus - # the first two characters will always be ASCII, unless the - # first character is a quotation mark. And in non-strict - # mode we can also have a few other characters too. - if len(unitxt) > 2: - first, second = unitxt[:2] - if first in '"\'': - pass # second can be anything inside string literal - else: - if ((ord(first) < 0x20 or ord(first) > 0x7f) or \ - (ord(second) < 0x20 or ord(second) > 0x7f)) and \ - (not j.isws(first) and not j.isws(second)): - # Found non-printable ascii, must check unicode - # categories to see if the character is legal. - # Only whitespace, line and paragraph separators, - # and format control chars are legal here. - import unicodedata - catfirst = unicodedata.category(unicode(first)) - catsecond = unicodedata.category(unicode(second)) - if catfirst not in ('Zs','Zl','Zp','Cf') or \ - catsecond not in ('Zs','Zl','Zp','Cf'): - raise JSONDecodeError('the decoded string is gibberish, is the encoding correct?',encoding) - # Now ready to do the actual decoding - obj = j.decode( unitxt ) - return obj - -# end file diff --git a/cgi-bin/load_question.py b/cgi-bin/load_question.py deleted file mode 100755 index af67e8230..000000000 --- a/cgi-bin/load_question.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/python2.5 - -# Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) -# https://github.com/pgbovine/OnlinePythonTutor/ -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# Load a question file in the 'questions/' sub-directory, parse it, -# and return it to the caller in JSON format -QUESTIONS_DIR = '../questions/' - -from parse_questions import parseQuestionsFile - -import cgi, os, demjson - -form = cgi.FieldStorage() -question_file = form['question_file'].value - -fn = QUESTIONS_DIR + question_file + '.txt' -assert os.path.isfile(fn) - - -# Crucial first line to make sure that Apache serves this data -# correctly - DON'T FORGET THE EXTRA NEWLINES!!!: -print "Content-type: text/plain; charset=iso-8859-1\n\n" -print demjson.encode(parseQuestionsFile(fn)) diff --git a/jquery.textarea.js b/jquery.textarea.js deleted file mode 100644 index cd8acd5e4..000000000 --- a/jquery.textarea.js +++ /dev/null @@ -1,260 +0,0 @@ -// include this file AFTER including jQuery - -/* - * Tabby jQuery plugin version 0.12 - * - * Ted Devito - http://teddevito.com/demos/textarea.html - * - * You should have received a copy of the GNU General Public License - * along with Easy Widgets. If not, see - * - * Plugin development pattern based on: http://www.learningjquery.com/2007/10/a-plugin-development-pattern - * - */ - -// create closure - -(function($) { - - // plugin definition - - $.fn.tabby = function(options) { - //debug(this); - // build main options before element iteration - var opts = $.extend({}, $.fn.tabby.defaults, options); - var pressed = $.fn.tabby.pressed; - - // iterate and reformat each matched element - return this.each(function() { - $this = $(this); - - // build element specific options - var options = $.meta ? $.extend({}, opts, $this.data()) : opts; - - $this.bind('keydown',function (e) { - var kc = $.fn.tabby.catch_kc(e); - if (16 == kc) pressed.shft = true; - /* - because both CTRL+TAB and ALT+TAB default to an event (changing tab/window) that - will prevent js from capturing the keyup event, we'll set a timer on releasing them. - */ - if (17 == kc) {pressed.ctrl = true; setTimeout("$.fn.tabby.pressed.ctrl = false;",1000);} - if (18 == kc) {pressed.alt = true; setTimeout("$.fn.tabby.pressed.alt = false;",1000);} - - if (9 == kc && !pressed.ctrl && !pressed.alt) { - e.preventDefault; // does not work in O9.63 ?? - pressed.last = kc; setTimeout("$.fn.tabby.pressed.last = null;",0); - process_keypress ($(e.target).get(0), pressed.shft, options); - return false; - } - - }).bind('keyup',function (e) { - if (16 == $.fn.tabby.catch_kc(e)) pressed.shft = false; - }).bind('blur',function (e) { // workaround for Opera -- http://www.webdeveloper.com/forum/showthread.php?p=806588 - if (9 == pressed.last) $(e.target).one('focus',function (e) {pressed.last = null;}).get(0).focus(); - }); - - }); - }; - - // define and expose any extra methods - $.fn.tabby.catch_kc = function(e) { return e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which; }; - $.fn.tabby.pressed = {shft : false, ctrl : false, alt : false, last: null}; - - // private function for debugging - function debug($obj) { - if (window.console && window.console.log) - window.console.log('textarea count: ' + $obj.size()); - }; - - function process_keypress (o,shft,options) { - var scrollTo = o.scrollTop; - //var tabString = String.fromCharCode(9); - - // gecko; o.setSelectionRange is only available when the text box has focus - if (o.setSelectionRange) gecko_tab (o, shft, options); - - // ie; document.selection is always available - else if (document.selection) ie_tab (o, shft, options); - - o.scrollTop = scrollTo; - } - - // plugin defaults - //$.fn.tabby.defaults = {tabString : String.fromCharCode(9)}; - // modified by pgbovine: - $.fn.tabby.defaults = {tabString : ' '}; - - function gecko_tab (o, shft, options) { - var ss = o.selectionStart; - var es = o.selectionEnd; - - // when there's no selection and we're just working with the caret, we'll add/remove the tabs at the caret, providing more control - if(ss == es) { - // SHIFT+TAB - if (shft) { - // check to the left of the caret first - //if ("\t" == o.value.substring(ss-options.tabString.length, ss)) { - // modified by pgbovine: - if (" " == o.value.substring(ss-options.tabString.length, ss)) { - o.value = o.value.substring(0, ss-options.tabString.length) + o.value.substring(ss); // put it back together omitting one character to the left - o.focus(); - o.setSelectionRange(ss - options.tabString.length, ss - options.tabString.length); - } - // then check to the right of the caret - else if ("\t" == o.value.substring(ss, ss + options.tabString.length)) { - o.value = o.value.substring(0, ss) + o.value.substring(ss + options.tabString.length); // put it back together omitting one character to the right - o.focus(); - o.setSelectionRange(ss,ss); - } - } - // TAB - else { - o.value = o.value.substring(0, ss) + options.tabString + o.value.substring(ss); - o.focus(); - o.setSelectionRange(ss + options.tabString.length, ss + options.tabString.length); - } - } - // selections will always add/remove tabs from the start of the line - else { - // split the textarea up into lines and figure out which lines are included in the selection - var lines = o.value.split("\n"); - var indices = new Array(); - var sl = 0; // start of the line - var el = 0; // end of the line - var sel = false; - for (var i in lines) { - el = sl + lines[i].length; - indices.push({start: sl, end: el, selected: (sl <= ss && el > ss) || (el >= es && sl < es) || (sl > ss && el < es)}); - sl = el + 1;// for "\n" - } - - // walk through the array of lines (indices) and add tabs where appropriate - var modifier = 0; - for (var i in indices) { - if (indices[i].selected) { - var pos = indices[i].start + modifier; // adjust for tabs already inserted/removed - // SHIFT+TAB - if (shft && options.tabString == o.value.substring(pos,pos+options.tabString.length)) { // only SHIFT+TAB if there's a tab at the start of the line - o.value = o.value.substring(0,pos) + o.value.substring(pos + options.tabString.length); // omit the tabstring to the right - modifier -= options.tabString.length; - } - // TAB - else if (!shft) { - o.value = o.value.substring(0,pos) + options.tabString + o.value.substring(pos); // insert the tabstring - modifier += options.tabString.length; - } - } - } - o.focus(); - var ns = ss + ((modifier > 0) ? options.tabString.length : (modifier < 0) ? -options.tabString.length : 0); - var ne = es + modifier; - o.setSelectionRange(ns,ne); - } - } - - function ie_tab (o, shft, options) { - var range = document.selection.createRange(); - - if (o == range.parentElement()) { - // when there's no selection and we're just working with the caret, we'll add/remove the tabs at the caret, providing more control - if ('' == range.text) { - // SHIFT+TAB - if (shft) { - var bookmark = range.getBookmark(); - //first try to the left by moving opening up our empty range to the left - range.moveStart('character', -options.tabString.length); - if (options.tabString == range.text) { - range.text = ''; - } else { - // if that didn't work then reset the range and try opening it to the right - range.moveToBookmark(bookmark); - range.moveEnd('character', options.tabString.length); - if (options.tabString == range.text) - range.text = ''; - } - // move the pointer to the start of them empty range and select it - range.collapse(true); - range.select(); - } - - else { - // very simple here. just insert the tab into the range and put the pointer at the end - range.text = options.tabString; - range.collapse(false); - range.select(); - } - } - // selections will always add/remove tabs from the start of the line - else { - - var selection_text = range.text; - var selection_len = selection_text.length; - var selection_arr = selection_text.split("\r\n"); - - var before_range = document.body.createTextRange(); - before_range.moveToElementText(o); - before_range.setEndPoint("EndToStart", range); - var before_text = before_range.text; - var before_arr = before_text.split("\r\n"); - var before_len = before_text.length; // - before_arr.length + 1; - - var after_range = document.body.createTextRange(); - after_range.moveToElementText(o); - after_range.setEndPoint("StartToEnd", range); - var after_text = after_range.text; // we can accurately calculate distance to the end because we're not worried about MSIE trimming a \r\n - - var end_range = document.body.createTextRange(); - end_range.moveToElementText(o); - end_range.setEndPoint("StartToEnd", before_range); - var end_text = end_range.text; // we can accurately calculate distance to the end because we're not worried about MSIE trimming a \r\n - - var check_html = $(o).html(); - $("#r3").text(before_len + " + " + selection_len + " + " + after_text.length + " = " + check_html.length); - if((before_len + end_text.length) < check_html.length) { - before_arr.push(""); - before_len += 2; // for the \r\n that was trimmed - if (shft && options.tabString == selection_arr[0].substring(0,options.tabString.length)) - selection_arr[0] = selection_arr[0].substring(options.tabString.length); - else if (!shft) selection_arr[0] = options.tabString + selection_arr[0]; - } else { - if (shft && options.tabString == before_arr[before_arr.length-1].substring(0,options.tabString.length)) - before_arr[before_arr.length-1] = before_arr[before_arr.length-1].substring(options.tabString.length); - else if (!shft) before_arr[before_arr.length-1] = options.tabString + before_arr[before_arr.length-1]; - } - - for (var i = 1; i < selection_arr.length; i++) { - if (shft && options.tabString == selection_arr[i].substring(0,options.tabString.length)) - selection_arr[i] = selection_arr[i].substring(options.tabString.length); - else if (!shft) selection_arr[i] = options.tabString + selection_arr[i]; - } - - if (1 == before_arr.length && 0 == before_len) { - if (shft && options.tabString == selection_arr[0].substring(0,options.tabString.length)) - selection_arr[0] = selection_arr[0].substring(options.tabString.length); - else if (!shft) selection_arr[0] = options.tabString + selection_arr[0]; - } - - if ((before_len + selection_len + after_text.length) < check_html.length) { - selection_arr.push(""); - selection_len += 2; // for the \r\n that was trimmed - } - - before_range.text = before_arr.join("\r\n"); - range.text = selection_arr.join("\r\n"); - - var new_range = document.body.createTextRange(); - new_range.moveToElementText(o); - - if (0 < before_len) new_range.setEndPoint("StartToEnd", before_range); - else new_range.setEndPoint("StartToStart", before_range); - new_range.setEndPoint("EndToEnd", range); - - new_range.select(); - - } - } - } - -// end of closure -})(jQuery); diff --git a/.htaccess b/v1-v2/.htaccess similarity index 100% rename from .htaccess rename to v1-v2/.htaccess diff --git a/v1-v2/Python3-porting.txt b/v1-v2/Python3-porting.txt new file mode 100644 index 000000000..dca80e0fa --- /dev/null +++ b/v1-v2/Python3-porting.txt @@ -0,0 +1,101 @@ +See cgi-bin/p4_encoder.py for some proposed changes + +John DeNero's comments on 2012-07-23 +''' +Distinguishing whether +some x is a class or not in Python 3 should be performed via: + +isinstance(x, type) + +I don't think any sort of hack or repr comparison is required. +''' + + +Notes from Peter Wentworth about porting to Python 3 +''' +Hi Philip - a bug in the code I sent you [NB, see: python3_viz.zip]! I +really kludged how I tested for classes vs instances in the file +p3_encoder that I sent you. At line 77 of that file, I used str(dat) +to convert the object to a string, and then did some hackish substring +searching. But if the user provides a __str__ method in the class, it +gets called instead, leading to trouble. + +My quick hack was to change the str(dat) call to repr(dat) (which won't +dispatch to user-written methods), but it doesn't solve the key issue +that I have not taken proper care to cleanly categorize +types/objects/classes in Python 3. + +Peter + +-----Original Message----- +From: George Wells +Sent: 21 September 2011 03:47 PM +To: Peter Wentworth +Subject: Python visualiser + +Hi Peter + +I just tried a simple example of a class in the visualiser and it is +generating an error for some reason (the code runs fine in the +interpreter). It was working fine until I added the second method +(__str__). + +The code is: + +-----8<----- +class Point: + def __init__ (self, x=0, y=0): + self.x=x + self.y=y + def __str__ (self): + return '({0}, {1})'.format(self.x, self.y) + +pt=Point(3,4) +print(pt) +-----8<----- + +Cheers, +George. +''' + +''' +Hi Philip + +And my last bug report was even sloppy. I use str(dat) at three +different places in that file, so it needs to be refactored a little +before changing the str() to repr() +''' + +Regarding how to port to Python 3 ... +''' +HI Philip + +I don't have anything to recommend. My experience is that there are +very few (end-user) things that are quite widely talked about in various +forums. Key ones for me is that print is now a function; range is +inherently lazy (like P2 xrange used to be), strings are no longer +ascii – they are all Unicode, input takes on the semantics of P2 +rawinput, and some methods to iterate over dictionaries are different. + +In the context of the visualizer, changing Python 2 to Python 3 wasn't +particularly complicated, except for the class/instance hurdle. P3 has +a more unified class-based type system, immediately evident if you ask +type(123) -- it now returns . Classes are themselves +instances of some MetaClass, with a thing called 'type' at the top of +the hierarchy. ('type' is an instance of 'type') So there isn't +really an easy end-user way to ask "is this a class or an instance?" – +it is both at the same time! There is some library that can expose +detailed internal attributes of things, but I chose not to use that. +Rather, if you ask for repr(obj) it turns it into some external string +that always has the word 'instance' in it for instances! So I got repr +to do the internal inspection and I made the decision with some string +matching. + +One of the more interesting new features in Python 3 is a function +annotation mechanism. The compiler ignores annotations. The idea +seems to be "lets allow annotations and see what creative things the +third-party tools do with them". See +http://www.python.org/dev/peps/pep-3107/ where they use annotations for +type signatures etc. +''' + diff --git a/v1-v2/README b/v1-v2/README new file mode 100644 index 000000000..8726a706f --- /dev/null +++ b/v1-v2/README @@ -0,0 +1,148 @@ +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +====== +This directory contains the contents of Versions 1 and 2: + +Version 1 - Released on January 19, 2010 +Version 2 - Released on October 4, 2011 + +====== +Introduction: + +The Online Python Tutor is a web application where you can type Python +scripts directly into your web browser, execute those scripts, and +single-step FORWARDS AND BACKWARDS through execution in order to view +the run-time state of all data structures. + +Using this tool, teachers and students can write small Python code +snippets together and see what happens to the data structures when the +code gets executed. + +Try it out live at: http://www.onlinepythontutor.com/ + +====== +System architecture overview: + +The Online Python Tutor is implemented as a web application, with a +JavaScript front-end making AJAX calls to a pure-Python back-end. + +The back-end has been tested on an Apache server running Python 2.6 +through CGI. Note that it will probably fail in subtle ways on other +Python 2.X (and will DEFINITELY fail on Python 3.X). Peter Wentworth +has create a port to Python 3.X, and hopefully we can eventually +integrate his code into my repository. + + +The front-end is HTML/JavaScript (using the jQuery library). It's +responsible for the input text box, submitting the Python code (as +plaintext) to the back-end, receiving an execution trace from the +back-end, and then rendering that trace as data structure +visualizations. The front-end code resides in these files in the +current directory: + + tutor.html + question.html + edu-python.js + edu-python-tutor.js + edu-python-questions.js + edu-python.css + jquery.textarea.js + .htaccess - to increase the size of allowed Apache HTTP responses + + (there are also other 3rd-party JavaScript library files) + +Note on .htaccess: If your server limits the size of responses received +from HTTP requests, then you might need to use the following .htaccess +file included in your top-level (front-end) directory, to allow the +Online Python Tutor to receive traces from the back-end: + + + +# Set a ~2MB limit for response headers (bigger than default 512K limit) +SecResponseBodyLimit 2000000 + + + + +The back-end is a server-side CGI application that takes Python script +source code as input, executes the entire script (up to 200 executed +lines, to prevent infinite loops), and collects a full trace of all +variable values (i.e., data structures) after each line has been +executed. It then sends that full trace to the front-end in a +specially-encoded JSON format. The front-end then parses and visualizes +that trace and allows the user to single-step forwards AND backwards +through execution. + +The back-end resides in the cgi-bin/ sub-directory in this repository: + + cgi-bin/web_exec.py - the CGI entrance point to the back-end + cgi-bin/web_run_test.py - the CGI entrance point to the question + grading back-end + cgi-bin/pg_logger.py - the 'meat' of the back-end + cgi-bin/pg_encoder.py - encodes Python data into JSON + cgi-bin/create_db.py - for optional sqlite query logging + cgi-bin/db_common.py - for optional sqlite query logging + cgi-bin/.htaccess - for Apache CGI execute permissions + + +Due to the AJAX same-origin policy, the front-end and back-end must be +deployed on the same server (unless you do some fancy proxy magic). + + +====== +Original founding vision (from January 2010): + +I want to create a web-based interactive learning platform for students +to explore programming. I envision an HTML UI where a student can enter +in code and then single-step through it and see how the data structures +change during execution. + +Key insight: I realized that for the small programs that teachers and +students write for educational purposes, it's possible to simply LOG +everything that happens to data structures during execution. Then we +can simply play back that log in the front-end, which allows +single-stepping forwards and also BACKWARDS. + +After all, we don't need students to be able to interactive probe and +make changes in the middle of execution, which is the only value-added +of a REAL debugger. + +What kinds of things do we want to log? + + On the execution of each line, log: + - the line number just executed + - all data created by the program + + Also log calls and returns of a student's function + (but NOT library functions) + +We can use the Python JSON module to encode data structures in JSON and +send it to the client's web browser + +The PDB debugger (Lib/pdb.py) is written in pure Python: + http://docs.python.org/library/pdb.html + - the bdb debugger framework is the C module that pdb calls + http://docs.python.org/library/bdb.html + diff --git a/TODO b/v1-v2/TODO similarity index 100% rename from TODO rename to v1-v2/TODO diff --git a/alias-screenshot.png b/v1-v2/alias-screenshot.png similarity index 100% rename from alias-screenshot.png rename to v1-v2/alias-screenshot.png diff --git a/cgi-bin/.htaccess b/v1-v2/cgi-bin/.htaccess similarity index 100% rename from cgi-bin/.htaccess rename to v1-v2/cgi-bin/.htaccess diff --git a/cgi-bin/create_db.py b/v1-v2/cgi-bin/create_db.py similarity index 100% rename from cgi-bin/create_db.py rename to v1-v2/cgi-bin/create_db.py diff --git a/cgi-bin/db_common.py b/v1-v2/cgi-bin/db_common.py similarity index 100% rename from cgi-bin/db_common.py rename to v1-v2/cgi-bin/db_common.py diff --git a/cgi-bin/index.html b/v1-v2/cgi-bin/index.html similarity index 100% rename from cgi-bin/index.html rename to v1-v2/cgi-bin/index.html diff --git a/v1-v2/cgi-bin/load_question.py b/v1-v2/cgi-bin/load_question.py new file mode 100755 index 000000000..14d6522f8 --- /dev/null +++ b/v1-v2/cgi-bin/load_question.py @@ -0,0 +1,46 @@ +#!/usr/bin/python2.6 + +# Online Python Tutor +# https://github.com/pgbovine/OnlinePythonTutor/ +# +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# Load a question file in the 'questions/' sub-directory, parse it, +# and return it to the caller in JSON format +QUESTIONS_DIR = '../questions/' + +from parse_questions import parseQuestionsFile + +import cgi, os, json + +form = cgi.FieldStorage() +question_file = form['question_file'].value + +fn = QUESTIONS_DIR + question_file + '.txt' +assert os.path.isfile(fn) + + +# Crucial first line to make sure that Apache serves this data +# correctly - DON'T FORGET THE EXTRA NEWLINES!!!: +print "Content-type: text/plain; charset=iso-8859-1\n\n" +print json.dumps(parseQuestionsFile(fn)) diff --git a/v1-v2/cgi-bin/p4_encoder.py b/v1-v2/cgi-bin/p4_encoder.py new file mode 100755 index 000000000..4c28ac3de --- /dev/null +++ b/v1-v2/cgi-bin/p4_encoder.py @@ -0,0 +1,192 @@ +#!/usr/bin/python3 -u + +# Python 3 version of encoder by David Pritchard, built upon work by Peter Wentworth +# (diff with pg_encoder.py, which is for Python 2) + + +# given an arbitrary piece of Python data, encode it in such a manner +# that it can be later encoded into JSON. +# http://json.org/ +# +# Format: +# * None, int, float, str, bool - unchanged (long is removed in Python 3) +# (json.dumps encodes these fine verbatim) +# * list - ['LIST', unique_id, elt1, elt2, elt3, ..., eltN] +# * tuple - ['TUPLE', unique_id, elt1, elt2, elt3, ..., eltN] +# * set - ['SET', unique_id, elt1, elt2, elt3, ..., eltN] +# * dict - ['DICT', unique_id, [key1, value1], [key2, value2], ..., [keyN, valueN]] +# * instance - ['INSTANCE', class name, unique_id, [attr1, value1], [attr2, value2], ..., [attrN, valueN]] +# * class - ['CLASS', class name, unique_id, [list of superclass names], [attr1, value1], [attr2, value2], ..., [attrN, valueN]] +# * circular reference - ['CIRCULAR_REF', unique_id] +# * other - [, unique_id, string representation of object] +# +# +# the unique_id is derived from id(), which allows us to explicitly +# capture aliasing of compound values + +# Key: real ID from id() +# Value: a small integer for greater readability, set by cur_small_id +real_to_small_IDs = {} +cur_small_id = 1 + +import re, types +#typeRE = re.compile("") # not used in Python 3 +classRE = re.compile("") +functionRE = re.compile("") # new case for Python 3 + +# When we find a and x is in this list, don't confuse the beginner by listing the inner details +native_types = ['int', 'float', 'str', 'tuple', 'list', 'set', 'dict', 'bool', 'NoneType', 'bytes', 'type', 'object'] + +def encode(dat, ignore_id=False): + + def append_attributes(ret, new_compound_obj_ids, dict): + """ Put attributes onto ret. """ + # traverse the __dict__ to grab attributes + # (filter out useless-seeming ones): + + user_attrs = sorted([e for e in dict.keys() + if e not in {'__doc__', '__module__', '__return__', '__locals__', + '__weakref__', '__dict__'} + ]) + for attr in user_attrs: + foo = [encode_helper(attr, new_compound_obj_ids), + encode_helper(dict[attr], new_compound_obj_ids)] + ret.append(foo) + + def encode_helper(dat, compound_obj_ids): + # primitive type + if dat is None or type(dat) in (int, float, str, bool): + return dat + # compound type + else: + my_id = id(dat) + + global cur_small_id + if my_id not in real_to_small_IDs: + if ignore_id: + real_to_small_IDs[my_id] = 99999 + else: + real_to_small_IDs[my_id] = cur_small_id + cur_small_id += 1 + + if my_id in compound_obj_ids: + return ['CIRCULAR_REF', real_to_small_IDs[my_id]] + + new_compound_obj_ids = compound_obj_ids.union([my_id]) + + typ = type(dat) + obj_as_string = object.__repr__(dat) + + my_small_id = real_to_small_IDs[my_id] + + if typ == list: + ret = ['LIST', my_small_id] + for e in dat: ret.append(encode_helper(e, new_compound_obj_ids)) + elif typ == tuple: + ret = ['TUPLE', my_small_id] + for e in dat: ret.append(encode_helper(e, new_compound_obj_ids)) + elif typ == set: + ret = ['SET', my_small_id] + for e in dat: ret.append(encode_helper(e, new_compound_obj_ids)) + elif typ == dict: + ret = ['DICT', my_small_id] + append_attributes(ret, new_compound_obj_ids, dat) + + elif typ == type: # its a class. What a mess they made of it! + superclass_names = [e.__name__ for e in dat.__bases__] + ret = ['CLASS', dat.__name__, my_small_id, superclass_names] + if dat.__name__ not in native_types: + if hasattr(dat, '__dict__'): + append_attributes(ret, new_compound_obj_ids, dat.__dict__) + + elif repr(typ)[:6] == "= 0: # is it an instance? + ret = ['INSTANCE', dat.__class__.__name__, my_small_id] + if hasattr(dat, '__dict__'): + append_attributes(ret, new_compound_obj_ids, dat.__dict__) + + else: + typeStr = repr(typ) + m = classRE.match(typeStr) + assert m, typ + ret = [m.group(1), my_small_id , obj_as_string] + + return ret + + return encode_helper(dat, set()) + + +if __name__ == '__main__': + + def test(actual, expected=0): + """ Compare the actual to the expected value, and print a suitable message. """ + import sys + linenum = sys._getframe(1).f_lineno # get the caller's line number. + if (expected == actual): + msg = "Test on line %s passed." % (linenum) + else: + msg = "Test on line %s failed. Expected '%s', but got '%s'." % (linenum, expected, actual) + print(msg) + + class P(): + p_attr1 = 123 + def p_method(self, x): + return 2*x + + class Q(P): + pass + + p1 = P() + q1 = Q() + + addr = 1 + + test(encode("hello"),"hello") + test(encode(123),123) + test(encode(123.45),123.45) + test(encode(132432134423143132432134423143),132432134423143132432134423143) + test(encode(False),False) + test(encode(None),None) + + + test(encode((1,2)), ['TUPLE', addr, 1, 2]) + + addr += 1 + test(encode([1,2]), ['LIST', addr, 1, 2]) + + addr += 1 + test(encode({1:'mon'}), ['DICT', addr, [1, 'mon']]) + + addr += 1 + test(encode(test), ['function', addr, 'test']) + + addr += 1 + test(encode(P), ['CLASS', 'P', addr, ['object'], ['p_attr1', 123], ['p_method', ['function', addr+1, 'p_method']]]) + + addr += 2 + test(encode(Q), ['CLASS', 'Q', addr, ['P']]) + + addr += 1 + test(encode(p1), ['INSTANCE', 'P', addr]) + + addr += 1 + test(encode(q1), ['INSTANCE', 'Q', addr]) + + addr += 1 + test(encode(min), ['builtin_function_or_method', addr, ''] ) + + addr += 1 + test(encode(range(1,3)), ['range', addr, 'range(1, 3)']) + + addr += 1 + test(encode({1,2}), ['SET', addr, 1, 2]) + + addr += 1 + p = [1,2,3] + p.append(p) # make a circular reference + + test(encode(p), ['LIST', addr, 1, 2, 3, ['CIRCULAR_REF', addr]]) + +# Need some new tests for z = type(123) + + + print(encode({"stdout": "", "func_name": "", "globals": {"sum": 0, "friends": ["LIST", 1, "Joe", "Bill"], "length": 3, "f": "Joe"}, "stack_locals": [], "line": 7, "event": "step_line"})) diff --git a/cgi-bin/parse_questions.py b/v1-v2/cgi-bin/parse_questions.py similarity index 65% rename from cgi-bin/parse_questions.py rename to v1-v2/cgi-bin/parse_questions.py index 5a3935f19..392ab43ae 100644 --- a/cgi-bin/parse_questions.py +++ b/v1-v2/cgi-bin/parse_questions.py @@ -1,19 +1,27 @@ # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + # Defines a function that parses an Online Python Tutor 'questions file' # into a dict, which can easily be converted into JSON diff --git a/cgi-bin/pg_encoder.py b/v1-v2/cgi-bin/pg_encoder.py similarity index 77% rename from cgi-bin/pg_encoder.py rename to v1-v2/cgi-bin/pg_encoder.py index 2de1f97eb..01618dfe3 100644 --- a/cgi-bin/pg_encoder.py +++ b/v1-v2/cgi-bin/pg_encoder.py @@ -1,19 +1,26 @@ # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Given an arbitrary piece of Python data, encode it in such a manner diff --git a/cgi-bin/pg_logger.py b/v1-v2/cgi-bin/pg_logger.py similarity index 89% rename from cgi-bin/pg_logger.py rename to v1-v2/cgi-bin/pg_logger.py index 6c948af52..673c3dbf6 100644 --- a/cgi-bin/pg_logger.py +++ b/v1-v2/cgi-bin/pg_logger.py @@ -1,19 +1,26 @@ # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # This is the meat of the Online Python Tutor back-end. It implements a @@ -21,7 +28,7 @@ # Python debugger imported via the bdb module), printing out the values # of all in-scope data structures after each executed instruction. -# Note that I've only tested this logger on Python 2.5, so it will +# Note that I've only tested this logger on Python 2.6, so it will # probably fail in subtle ways on other Python 2.X (and will DEFINITELY # fail on Python 3.X). diff --git a/cgi-bin/run_tests.py b/v1-v2/cgi-bin/run_tests.py similarity index 78% rename from cgi-bin/run_tests.py rename to v1-v2/cgi-bin/run_tests.py index 550815736..221bea85e 100644 --- a/cgi-bin/run_tests.py +++ b/v1-v2/cgi-bin/run_tests.py @@ -1,19 +1,26 @@ # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Regression tests for Online Python Tutor back-end @@ -23,7 +30,6 @@ import os, sys, re, shutil, filecmp, optparse, difflib import pg_logger -import demjson # all tests are found in this directory: @@ -35,7 +41,7 @@ def execute(test_script): def my_finalizer(output_lst): outfile = open(test_script[:-3] + '.out', 'w') - output_json = demjson.encode(output_lst, compactly=False) + output_json = json.dumps(output_lst) print >> outfile, output_json pg_logger.exec_script_str(open(test_script).read(), my_finalizer, True) diff --git a/cgi-bin/web_exec.py b/v1-v2/cgi-bin/web_exec.py similarity index 64% rename from cgi-bin/web_exec.py rename to v1-v2/cgi-bin/web_exec.py index 4df13f30c..9debc60ec 100755 --- a/cgi-bin/web_exec.py +++ b/v1-v2/cgi-bin/web_exec.py @@ -1,21 +1,28 @@ -#!/usr/bin/python2.5 +#!/usr/bin/python2.6 # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Executes the Online Python Tutor back-end as a CGI script, which @@ -24,8 +31,8 @@ # # Returns a complete JSON execution trace to the front-end. # -# This version uses Python 2.5 on the MIT CSAIL servers. -# (note that Python 2.4 doesn't work on CSAIL, but Python 2.5 does) +# This version uses Python 2.6 on the MIT CSAIL servers. +# (note that Python 2.4 doesn't work on CSAIL, but Python 2.6 does) # # If you want to run this script, then you'll need to change the # shebang line at the top of this file to point to your system's Python. @@ -43,9 +50,7 @@ import cgi import pg_logger -# Python 2.5 doesn't have a built-in json module, so I'm using a -# 3rd-party module. I think you can do 'import json' in Python >= 2.6 -import demjson +import json if LOG_QUERIES: import os, time, db_common @@ -53,7 +58,7 @@ def web_finalizer(output_lst): # use compactly=False to produce human-readable JSON, # except at the expense of being a LARGER download - output_json = demjson.encode(output_lst, compactly=True) + output_json = json.dumps(output_lst) # query logging is optional if LOG_QUERIES: diff --git a/cgi-bin/web_run_test.py b/v1-v2/cgi-bin/web_run_test.py similarity index 77% rename from cgi-bin/web_run_test.py rename to v1-v2/cgi-bin/web_run_test.py index c0ae45605..abe4592a6 100755 --- a/cgi-bin/web_run_test.py +++ b/v1-v2/cgi-bin/web_run_test.py @@ -1,21 +1,28 @@ -#!/usr/bin/python2.5 +#!/usr/bin/python2.6 # Online Python Tutor -# Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) # https://github.com/pgbovine/OnlinePythonTutor/ # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: # -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Runs both 'user_script' and 'expect_script' and returns whether the @@ -26,9 +33,7 @@ import cgi import pg_logger -# Python 2.5 doesn't have a built-in json module, so I'm using a -# 3rd-party module. I think you can do 'import json' in Python >= 2.6 -import demjson +import json user_trace = None # the FULL user trace (without any IDs, though) expect_trace_final_entry = None @@ -60,7 +65,7 @@ def expect_script_finalizer(output_lst): # Crucial first line to make sure that Apache serves this data # correctly - DON'T FORGET THE EXTRA NEWLINES!!!: print "Content-type: text/plain; charset=iso-8859-1\n\n" - output_json = demjson.encode(ret, compactly=True) + output_json = json.dumps(ret) print output_json else: @@ -122,7 +127,7 @@ def really_finalize(): # Crucial first line to make sure that Apache serves this data # correctly - DON'T FORGET THE EXTRA NEWLINES!!!: print "Content-type: text/plain; charset=iso-8859-1\n\n" - output_json = demjson.encode(ret, compactly=True) + output_json = json.dumps(ret) print output_json diff --git a/edu-python-questions.js b/v1-v2/edu-python-questions.js similarity index 90% rename from edu-python-questions.js rename to v1-v2/edu-python-questions.js index dab19bd6d..7c1933a21 100644 --- a/edu-python-questions.js +++ b/v1-v2/edu-python-questions.js @@ -1,21 +1,28 @@ /* Online Python Tutor -Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -You should have received a copy of the GNU General Public License -along with this program. If not, see . +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -52,8 +59,9 @@ function resetTestResults() { $(document).ready(function() { eduPythonCommonInit(); // must call this first! - $("#actualCodeInput").tabby(); // recognize TAB and SHIFT-TAB - $("#testCodeInput").tabby(); // recognize TAB and SHIFT-TAB + // this doesn't work since we need jquery.textarea.js ... + //$("#actualCodeInput").tabby(); // recognize TAB and SHIFT-TAB + //$("#testCodeInput").tabby(); // recognize TAB and SHIFT-TAB // be friendly to the browser's forward and back buttons diff --git a/edu-python-title.css b/v1-v2/edu-python-title.css similarity index 61% rename from edu-python-title.css rename to v1-v2/edu-python-title.css index 55cb13448..9081041b8 100644 --- a/edu-python-title.css +++ b/v1-v2/edu-python-title.css @@ -1,21 +1,28 @@ /* Online Python Tutor -Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/edu-python-tutor.js b/v1-v2/edu-python-tutor.js similarity index 82% rename from edu-python-tutor.js rename to v1-v2/edu-python-tutor.js index 7905c3d57..7793f7818 100644 --- a/edu-python-tutor.js +++ b/v1-v2/edu-python-tutor.js @@ -1,21 +1,28 @@ /* Online Python Tutor -Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: -You should have received a copy of the GNU General Public License -along with this program. If not, see . +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -40,7 +47,8 @@ function enterVisualizeMode(traceData) { $(document).ready(function() { eduPythonCommonInit(); // must call this first! - $("#pyInput").tabby(); // recognize TAB and SHIFT-TAB + // this doesn't work since we need jquery.textarea.js ... + //$("#pyInput").tabby(); // recognize TAB and SHIFT-TAB // be friendly to the browser's forward and back buttons diff --git a/edu-python.css b/v1-v2/edu-python.css similarity index 90% rename from edu-python.css rename to v1-v2/edu-python.css index 5124fdf52..21d2ea64f 100644 --- a/edu-python.css +++ b/v1-v2/edu-python.css @@ -1,21 +1,28 @@ /* Online Python Tutor -Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/edu-python.js b/v1-v2/edu-python.js similarity index 97% rename from edu-python.js rename to v1-v2/edu-python.js index ee837e864..c5e2edaec 100644 --- a/edu-python.js +++ b/v1-v2/edu-python.js @@ -1,21 +1,28 @@ /* Online Python Tutor -Copyright (C) 2010-2011 Philip J. Guo (philip@pgbovine.net) https://github.com/pgbovine/OnlinePythonTutor/ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/v1-v2/example-code b/v1-v2/example-code new file mode 120000 index 000000000..c24e6a160 --- /dev/null +++ b/v1-v2/example-code @@ -0,0 +1 @@ +../v3/example-code \ No newline at end of file diff --git a/grading-375.png b/v1-v2/grading-375.png similarity index 100% rename from grading-375.png rename to v1-v2/grading-375.png diff --git a/hunt-mcilroy.js b/v1-v2/hunt-mcilroy.js similarity index 100% rename from hunt-mcilroy.js rename to v1-v2/hunt-mcilroy.js diff --git a/index.html b/v1-v2/index.html similarity index 81% rename from index.html rename to v1-v2/index.html index c7694a825..4952d4d48 100644 --- a/index.html +++ b/v1-v2/index.html @@ -4,21 +4,28 @@ @@ -201,7 +208,7 @@

new practice problems in plain text format

diff --git a/jquery-1.3.2.min.js b/v1-v2/jquery-1.3.2.min.js similarity index 100% rename from jquery-1.3.2.min.js rename to v1-v2/jquery-1.3.2.min.js diff --git a/jquery.autogrow.js b/v1-v2/jquery.autogrow.js similarity index 100% rename from jquery.autogrow.js rename to v1-v2/jquery.autogrow.js diff --git a/jquery.ba-bbq.min.js b/v1-v2/jquery.ba-bbq.min.js similarity index 100% rename from jquery.ba-bbq.min.js rename to v1-v2/jquery.ba-bbq.min.js diff --git a/jquery.corner.js b/v1-v2/jquery.corner.js similarity index 100% rename from jquery.corner.js rename to v1-v2/jquery.corner.js diff --git a/jquery.jsPlumb-1.3.3-all-min.js b/v1-v2/jquery.jsPlumb-1.3.3-all-min.js similarity index 100% rename from jquery.jsPlumb-1.3.3-all-min.js rename to v1-v2/jquery.jsPlumb-1.3.3-all-min.js diff --git a/jquery.min.js b/v1-v2/jquery.min.js similarity index 100% rename from jquery.min.js rename to v1-v2/jquery.min.js diff --git a/jsplumb-test.js b/v1-v2/jsplumb-test.js similarity index 100% rename from jsplumb-test.js rename to v1-v2/jsplumb-test.js diff --git a/mock-data.js b/v1-v2/mock-data.js similarity index 100% rename from mock-data.js rename to v1-v2/mock-data.js diff --git a/question.html b/v1-v2/question.html similarity index 78% rename from question.html rename to v1-v2/question.html index 6ea6ea4d2..a60214513 100644 --- a/question.html +++ b/v1-v2/question.html @@ -4,21 +4,28 @@ @@ -40,8 +47,6 @@ - - @@ -195,7 +200,7 @@

This application supports the core Python 2.5 language, with no +href="http://docs.python.org/release/2.6/">Python 2.6 language, with no module imports or file I/O. It's meant to be used as a platform for creating programming tutorials, not for running or debugging production code. @@ -206,7 +211,7 @@ repository and send bug reports, feedback, and suggestions to philip@pgbovine.net

-Copyright © 2010-2011 Philip Guo. All rights reserved. +Copyright © 2010-2012 Philip Guo. All rights reserved. diff --git a/questions/debug-bsearch.txt b/v1-v2/questions/debug-bsearch.txt similarity index 100% rename from questions/debug-bsearch.txt rename to v1-v2/questions/debug-bsearch.txt diff --git a/questions/debug-ireverse.txt b/v1-v2/questions/debug-ireverse.txt similarity index 100% rename from questions/debug-ireverse.txt rename to v1-v2/questions/debug-ireverse.txt diff --git a/questions/debug-mergesort.txt b/v1-v2/questions/debug-mergesort.txt similarity index 100% rename from questions/debug-mergesort.txt rename to v1-v2/questions/debug-mergesort.txt diff --git a/questions/optimize-find-dups.txt b/v1-v2/questions/optimize-find-dups.txt similarity index 100% rename from questions/optimize-find-dups.txt rename to v1-v2/questions/optimize-find-dups.txt diff --git a/questions/optimize-search.txt b/v1-v2/questions/optimize-search.txt similarity index 100% rename from questions/optimize-search.txt rename to v1-v2/questions/optimize-search.txt diff --git a/questions/optimize-sum.txt b/v1-v2/questions/optimize-sum.txt similarity index 100% rename from questions/optimize-sum.txt rename to v1-v2/questions/optimize-sum.txt diff --git a/questions/remove-dups.txt b/v1-v2/questions/remove-dups.txt similarity index 100% rename from questions/remove-dups.txt rename to v1-v2/questions/remove-dups.txt diff --git a/questions/reverse.txt b/v1-v2/questions/reverse.txt similarity index 100% rename from questions/reverse.txt rename to v1-v2/questions/reverse.txt diff --git a/questions/two-sum.txt b/v1-v2/questions/two-sum.txt similarity index 100% rename from questions/two-sum.txt rename to v1-v2/questions/two-sum.txt diff --git a/red-sad-face.jpg b/v1-v2/red-sad-face.jpg similarity index 100% rename from red-sad-face.jpg rename to v1-v2/red-sad-face.jpg diff --git a/test-programs/caught_exception_1.golden b/v1-v2/test-programs/caught_exception_1.golden similarity index 100% rename from test-programs/caught_exception_1.golden rename to v1-v2/test-programs/caught_exception_1.golden diff --git a/test-programs/caught_exception_1.py b/v1-v2/test-programs/caught_exception_1.py similarity index 100% rename from test-programs/caught_exception_1.py rename to v1-v2/test-programs/caught_exception_1.py diff --git a/test-programs/caught_exception_2.golden b/v1-v2/test-programs/caught_exception_2.golden similarity index 100% rename from test-programs/caught_exception_2.golden rename to v1-v2/test-programs/caught_exception_2.golden diff --git a/test-programs/caught_exception_2.py b/v1-v2/test-programs/caught_exception_2.py similarity index 100% rename from test-programs/caught_exception_2.py rename to v1-v2/test-programs/caught_exception_2.py diff --git a/test-programs/circ_ref.golden b/v1-v2/test-programs/circ_ref.golden similarity index 100% rename from test-programs/circ_ref.golden rename to v1-v2/test-programs/circ_ref.golden diff --git a/test-programs/circ_ref.py b/v1-v2/test-programs/circ_ref.py similarity index 100% rename from test-programs/circ_ref.py rename to v1-v2/test-programs/circ_ref.py diff --git a/test-programs/circ_ref_2.golden b/v1-v2/test-programs/circ_ref_2.golden similarity index 100% rename from test-programs/circ_ref_2.golden rename to v1-v2/test-programs/circ_ref_2.golden diff --git a/test-programs/circ_ref_2.py b/v1-v2/test-programs/circ_ref_2.py similarity index 100% rename from test-programs/circ_ref_2.py rename to v1-v2/test-programs/circ_ref_2.py diff --git a/test-programs/circ_ref_fake.golden b/v1-v2/test-programs/circ_ref_fake.golden similarity index 100% rename from test-programs/circ_ref_fake.golden rename to v1-v2/test-programs/circ_ref_fake.golden diff --git a/test-programs/circ_ref_fake.py b/v1-v2/test-programs/circ_ref_fake.py similarity index 100% rename from test-programs/circ_ref_fake.py rename to v1-v2/test-programs/circ_ref_fake.py diff --git a/test-programs/class_test.golden b/v1-v2/test-programs/class_test.golden similarity index 100% rename from test-programs/class_test.golden rename to v1-v2/test-programs/class_test.golden diff --git a/test-programs/class_test.py b/v1-v2/test-programs/class_test.py similarity index 100% rename from test-programs/class_test.py rename to v1-v2/test-programs/class_test.py diff --git a/test-programs/class_test_2.golden b/v1-v2/test-programs/class_test_2.golden similarity index 100% rename from test-programs/class_test_2.golden rename to v1-v2/test-programs/class_test_2.golden diff --git a/test-programs/class_test_2.py b/v1-v2/test-programs/class_test_2.py similarity index 100% rename from test-programs/class_test_2.py rename to v1-v2/test-programs/class_test_2.py diff --git a/test-programs/class_test_3.golden b/v1-v2/test-programs/class_test_3.golden similarity index 100% rename from test-programs/class_test_3.golden rename to v1-v2/test-programs/class_test_3.golden diff --git a/test-programs/class_test_3.py b/v1-v2/test-programs/class_test_3.py similarity index 100% rename from test-programs/class_test_3.py rename to v1-v2/test-programs/class_test_3.py diff --git a/test-programs/data_test.golden b/v1-v2/test-programs/data_test.golden similarity index 100% rename from test-programs/data_test.golden rename to v1-v2/test-programs/data_test.golden diff --git a/test-programs/data_test.py b/v1-v2/test-programs/data_test.py similarity index 100% rename from test-programs/data_test.py rename to v1-v2/test-programs/data_test.py diff --git a/test-programs/dict_error.golden b/v1-v2/test-programs/dict_error.golden similarity index 100% rename from test-programs/dict_error.golden rename to v1-v2/test-programs/dict_error.golden diff --git a/test-programs/dict_error.py b/v1-v2/test-programs/dict_error.py similarity index 100% rename from test-programs/dict_error.py rename to v1-v2/test-programs/dict_error.py diff --git a/test-programs/dict_test.golden b/v1-v2/test-programs/dict_test.golden similarity index 100% rename from test-programs/dict_test.golden rename to v1-v2/test-programs/dict_test.golden diff --git a/test-programs/dict_test.py b/v1-v2/test-programs/dict_test.py similarity index 100% rename from test-programs/dict_test.py rename to v1-v2/test-programs/dict_test.py diff --git a/test-programs/exec_test.golden b/v1-v2/test-programs/exec_test.golden similarity index 100% rename from test-programs/exec_test.golden rename to v1-v2/test-programs/exec_test.golden diff --git a/test-programs/exec_test.py b/v1-v2/test-programs/exec_test.py similarity index 100% rename from test-programs/exec_test.py rename to v1-v2/test-programs/exec_test.py diff --git a/test-programs/func_exception.golden b/v1-v2/test-programs/func_exception.golden similarity index 100% rename from test-programs/func_exception.golden rename to v1-v2/test-programs/func_exception.golden diff --git a/test-programs/func_exception.py b/v1-v2/test-programs/func_exception.py similarity index 100% rename from test-programs/func_exception.py rename to v1-v2/test-programs/func_exception.py diff --git a/test-programs/generator_test.golden b/v1-v2/test-programs/generator_test.golden similarity index 100% rename from test-programs/generator_test.golden rename to v1-v2/test-programs/generator_test.golden diff --git a/test-programs/generator_test.py b/v1-v2/test-programs/generator_test.py similarity index 100% rename from test-programs/generator_test.py rename to v1-v2/test-programs/generator_test.py diff --git a/test-programs/import_error.golden b/v1-v2/test-programs/import_error.golden similarity index 100% rename from test-programs/import_error.golden rename to v1-v2/test-programs/import_error.golden diff --git a/test-programs/import_error.py b/v1-v2/test-programs/import_error.py similarity index 100% rename from test-programs/import_error.py rename to v1-v2/test-programs/import_error.py diff --git a/test-programs/infinite_loop.golden b/v1-v2/test-programs/infinite_loop.golden similarity index 100% rename from test-programs/infinite_loop.golden rename to v1-v2/test-programs/infinite_loop.golden diff --git a/test-programs/infinite_loop.py b/v1-v2/test-programs/infinite_loop.py similarity index 100% rename from test-programs/infinite_loop.py rename to v1-v2/test-programs/infinite_loop.py diff --git a/test-programs/infinite_loop_one_liner.golden b/v1-v2/test-programs/infinite_loop_one_liner.golden similarity index 100% rename from test-programs/infinite_loop_one_liner.golden rename to v1-v2/test-programs/infinite_loop_one_liner.golden diff --git a/test-programs/infinite_loop_one_liner.py b/v1-v2/test-programs/infinite_loop_one_liner.py similarity index 100% rename from test-programs/infinite_loop_one_liner.py rename to v1-v2/test-programs/infinite_loop_one_liner.py diff --git a/test-programs/lambda_1.golden b/v1-v2/test-programs/lambda_1.golden similarity index 100% rename from test-programs/lambda_1.golden rename to v1-v2/test-programs/lambda_1.golden diff --git a/test-programs/lambda_1.py b/v1-v2/test-programs/lambda_1.py similarity index 100% rename from test-programs/lambda_1.py rename to v1-v2/test-programs/lambda_1.py diff --git a/test-programs/list_dict_test.golden b/v1-v2/test-programs/list_dict_test.golden similarity index 100% rename from test-programs/list_dict_test.golden rename to v1-v2/test-programs/list_dict_test.golden diff --git a/test-programs/list_dict_test.py b/v1-v2/test-programs/list_dict_test.py similarity index 100% rename from test-programs/list_dict_test.py rename to v1-v2/test-programs/list_dict_test.py diff --git a/test-programs/list_test.golden b/v1-v2/test-programs/list_test.golden similarity index 100% rename from test-programs/list_test.golden rename to v1-v2/test-programs/list_test.golden diff --git a/test-programs/list_test.py b/v1-v2/test-programs/list_test.py similarity index 100% rename from test-programs/list_test.py rename to v1-v2/test-programs/list_test.py diff --git a/test-programs/newstyle_class.golden b/v1-v2/test-programs/newstyle_class.golden similarity index 100% rename from test-programs/newstyle_class.golden rename to v1-v2/test-programs/newstyle_class.golden diff --git a/test-programs/newstyle_class.py b/v1-v2/test-programs/newstyle_class.py similarity index 100% rename from test-programs/newstyle_class.py rename to v1-v2/test-programs/newstyle_class.py diff --git a/test-programs/one_func.golden b/v1-v2/test-programs/one_func.golden similarity index 100% rename from test-programs/one_func.golden rename to v1-v2/test-programs/one_func.golden diff --git a/test-programs/one_func.py b/v1-v2/test-programs/one_func.py similarity index 100% rename from test-programs/one_func.py rename to v1-v2/test-programs/one_func.py diff --git a/test-programs/open_error.golden b/v1-v2/test-programs/open_error.golden similarity index 100% rename from test-programs/open_error.golden rename to v1-v2/test-programs/open_error.golden diff --git a/test-programs/open_error.py b/v1-v2/test-programs/open_error.py similarity index 100% rename from test-programs/open_error.py rename to v1-v2/test-programs/open_error.py diff --git a/test-programs/parse_error.golden b/v1-v2/test-programs/parse_error.golden similarity index 100% rename from test-programs/parse_error.golden rename to v1-v2/test-programs/parse_error.golden diff --git a/test-programs/parse_error.py b/v1-v2/test-programs/parse_error.py similarity index 100% rename from test-programs/parse_error.py rename to v1-v2/test-programs/parse_error.py diff --git a/test-programs/parse_error_2.golden b/v1-v2/test-programs/parse_error_2.golden similarity index 100% rename from test-programs/parse_error_2.golden rename to v1-v2/test-programs/parse_error_2.golden diff --git a/test-programs/parse_error_2.py b/v1-v2/test-programs/parse_error_2.py similarity index 100% rename from test-programs/parse_error_2.py rename to v1-v2/test-programs/parse_error_2.py diff --git a/test-programs/parse_error_3.golden b/v1-v2/test-programs/parse_error_3.golden similarity index 100% rename from test-programs/parse_error_3.golden rename to v1-v2/test-programs/parse_error_3.golden diff --git a/test-programs/parse_error_3.py b/v1-v2/test-programs/parse_error_3.py similarity index 100% rename from test-programs/parse_error_3.py rename to v1-v2/test-programs/parse_error_3.py diff --git a/test-programs/print_builtins_error.golden b/v1-v2/test-programs/print_builtins_error.golden similarity index 100% rename from test-programs/print_builtins_error.golden rename to v1-v2/test-programs/print_builtins_error.golden diff --git a/test-programs/print_builtins_error.py b/v1-v2/test-programs/print_builtins_error.py similarity index 100% rename from test-programs/print_builtins_error.py rename to v1-v2/test-programs/print_builtins_error.py diff --git a/test-programs/runtime_error.golden b/v1-v2/test-programs/runtime_error.golden similarity index 100% rename from test-programs/runtime_error.golden rename to v1-v2/test-programs/runtime_error.golden diff --git a/test-programs/runtime_error.py b/v1-v2/test-programs/runtime_error.py similarity index 100% rename from test-programs/runtime_error.py rename to v1-v2/test-programs/runtime_error.py diff --git a/test-programs/set_test.golden b/v1-v2/test-programs/set_test.golden similarity index 100% rename from test-programs/set_test.golden rename to v1-v2/test-programs/set_test.golden diff --git a/test-programs/set_test.py b/v1-v2/test-programs/set_test.py similarity index 100% rename from test-programs/set_test.py rename to v1-v2/test-programs/set_test.py diff --git a/test-programs/simple.golden b/v1-v2/test-programs/simple.golden similarity index 100% rename from test-programs/simple.golden rename to v1-v2/test-programs/simple.golden diff --git a/test-programs/simple.py b/v1-v2/test-programs/simple.py similarity index 100% rename from test-programs/simple.py rename to v1-v2/test-programs/simple.py diff --git a/test-programs/three_lists.golden b/v1-v2/test-programs/three_lists.golden similarity index 100% rename from test-programs/three_lists.golden rename to v1-v2/test-programs/three_lists.golden diff --git a/test-programs/three_lists.py b/v1-v2/test-programs/three_lists.py similarity index 100% rename from test-programs/three_lists.py rename to v1-v2/test-programs/three_lists.py diff --git a/test-programs/tuple_test.golden b/v1-v2/test-programs/tuple_test.golden similarity index 100% rename from test-programs/tuple_test.golden rename to v1-v2/test-programs/tuple_test.golden diff --git a/test-programs/tuple_test.py b/v1-v2/test-programs/tuple_test.py similarity index 100% rename from test-programs/tuple_test.py rename to v1-v2/test-programs/tuple_test.py diff --git a/test-programs/two_funcs.golden b/v1-v2/test-programs/two_funcs.golden similarity index 100% rename from test-programs/two_funcs.golden rename to v1-v2/test-programs/two_funcs.golden diff --git a/test-programs/two_funcs.py b/v1-v2/test-programs/two_funcs.py similarity index 100% rename from test-programs/two_funcs.py rename to v1-v2/test-programs/two_funcs.py diff --git a/tutor.html b/v1-v2/tutor.html similarity index 76% rename from tutor.html rename to v1-v2/tutor.html index eaa8c4913..6a39233d0 100644 --- a/tutor.html +++ b/v1-v2/tutor.html @@ -4,21 +4,28 @@ @@ -45,8 +52,6 @@ - - @@ -109,7 +114,7 @@

-Then try some programming questions:
+Then try some sample programming questions:
Solve: Two-sum | Reverse list | @@ -190,15 +195,15 @@

This application supports the core Python 2.5 language, with no +href="http://docs.python.org/release/2.6/">Python 2.6 language, with no module imports or file I/O. It's meant to be used as a platform for creating programming tutorials, not for running or debugging production code.

Official Python 3 support is coming soon; -for now, try the Python 3 fork by -Peter Wentworth. +for now, try the Python 3 forks by CS Circles and +Peter Wentworth.

Check out the -Copyright © 2010-2011 Philip Guo. All rights reserved. +Copyright © 2010-2012 Philip Guo. All rights reserved. - diff --git a/tutorials/MIT-6.01/README b/v1-v2/tutorials/MIT-6.01/README similarity index 100% rename from tutorials/MIT-6.01/README rename to v1-v2/tutorials/MIT-6.01/README diff --git a/tutorials/MIT-6.01/map.py b/v1-v2/tutorials/MIT-6.01/map.py similarity index 100% rename from tutorials/MIT-6.01/map.py rename to v1-v2/tutorials/MIT-6.01/map.py diff --git a/tutorials/MIT-6.01/oop_1.py b/v1-v2/tutorials/MIT-6.01/oop_1.py similarity index 100% rename from tutorials/MIT-6.01/oop_1.py rename to v1-v2/tutorials/MIT-6.01/oop_1.py diff --git a/tutorials/MIT-6.01/oop_2.py b/v1-v2/tutorials/MIT-6.01/oop_2.py similarity index 100% rename from tutorials/MIT-6.01/oop_2.py rename to v1-v2/tutorials/MIT-6.01/oop_2.py diff --git a/tutorials/MIT-6.01/oop_3.py b/v1-v2/tutorials/MIT-6.01/oop_3.py similarity index 100% rename from tutorials/MIT-6.01/oop_3.py rename to v1-v2/tutorials/MIT-6.01/oop_3.py diff --git a/tutorials/MIT-6.01/summation.py b/v1-v2/tutorials/MIT-6.01/summation.py similarity index 100% rename from tutorials/MIT-6.01/summation.py rename to v1-v2/tutorials/MIT-6.01/summation.py diff --git a/tutorials/README b/v1-v2/tutorials/README similarity index 100% rename from tutorials/README rename to v1-v2/tutorials/README diff --git a/tutorials/advanced/map.py b/v1-v2/tutorials/advanced/map.py similarity index 100% rename from tutorials/advanced/map.py rename to v1-v2/tutorials/advanced/map.py diff --git a/tutorials/math/newton.py b/v1-v2/tutorials/math/newton.py similarity index 100% rename from tutorials/math/newton.py rename to v1-v2/tutorials/math/newton.py diff --git a/tutorials/oop/oop_demo.py b/v1-v2/tutorials/oop/oop_demo.py similarity index 100% rename from tutorials/oop/oop_demo.py rename to v1-v2/tutorials/oop/oop_demo.py diff --git a/tutorials/personal-finance/compound_interest.py b/v1-v2/tutorials/personal-finance/compound_interest.py similarity index 100% rename from tutorials/personal-finance/compound_interest.py rename to v1-v2/tutorials/personal-finance/compound_interest.py diff --git a/yellow-happy-face.png b/v1-v2/yellow-happy-face.png similarity index 100% rename from yellow-happy-face.png rename to v1-v2/yellow-happy-face.png diff --git a/v3/GChartWrapper/GChart.py b/v3/GChartWrapper/GChart.py new file mode 100644 index 000000000..275fa544d --- /dev/null +++ b/v3/GChartWrapper/GChart.py @@ -0,0 +1,782 @@ +# (modified by Philip Guo to remove utf-8 dependencies and unnecessary imports) + +################################################################################ +# GChartWrapper - v0.8 +# Copyright (C) 2009 Justin Quick +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3 as published +# by the Free Software Foundation. +# +# Thanks to anyone who does anything for this project. +# If you have even the smallest revision, please email me at above address. +################################################################################ +""" +GChartWrapper - Google Chart API Wrapper + +The wrapper can render the URL of the Google chart based on your parameters. +With the chart you can render an HTML img tag to insert into webpages on the fly, +show it directly in a webbrowser, or save the chart PNG to disk. New versions +can generate PIL PngImage instances. + +Example + + >>> G = GChart('lc',['simpleisbetterthancomplexcomplexisbetterthancomplicated']) + >>> G.title('The Zen of Python','00cc00',36) + >>> G.color('00cc00') + >>> str(G) + 'http://chart.apis.google.com/chart? + chd=e:simpleisbetterthancomplexcomplexisbetterthancomplicated + &chs=300x150 + &cht=lc + &chtt=The+Zen+of+Python' + >>> G.image() # PIL instance + + >>> 1#G.show() # Webbrowser open + True + >>> G.save('tmp.png') # Save to disk + 'tmp.png' + +See tests.py for unit test and other examples +""" +from GChartWrapper.constants import * +from GChartWrapper.encoding import Encoder +from copy import copy + +def lookup_color(color): + """ + Returns the hex color for any valid css color name + + >>> lookup_color('aliceblue') + 'F0F8FF' + """ + if color is None: return + color = color.lower() + if color in COLOR_MAP: + return COLOR_MAP[color] + return color + +def color_args(args, *indexes): + """ + Color a list of arguments on particular indexes + + >>> c = color_args([None,'blue'], 1) + >>> c.next() + None + >>> c.next() + '0000FF' + """ + for i,arg in enumerate(args): + if i in indexes: + yield lookup_color(arg) + else: + yield arg + + +class Axes(dict): + """ + Axes attribute dictionary storage + + Use this class via GChart(...).axes + Methods are taken one at a time, like so: + + >>> G = GChart() + >>> G.axes.type('xy') + {} + >>> G.axes.label(1,'Label1') # X Axis + {} + >>> G.axes.label(2,'Label2') # Y Axis + {} + """ + def __init__(self, parent): + self.parent = parent + self.data = {'ticks':[],'labels':[],'positions':[], + 'ranges':[],'styles':[]} + dict.__init__(self) + + def tick(self, index, length): + """ + Add tick marks in order of axes by width + APIPARAM: chxtc , + """ + assert int(length) <= 25, 'Width cannot be more than 25' + self.data['ticks'].append('%s,%d'%(index,length)) + return self.parent + + def type(self, atype): + """ + Define the type of axes you wish to use + atype must be one of x,t,y,r + APIPARAM: chxt + """ + for char in atype: + assert char in 'xtyr', 'Invalid axes type: %s'%char + if not ',' in atype: + atype = ','.join(atype) + self['chxt'] = atype + return self.parent + __call__ = type + + def label(self, index, *args): + """ + Label each axes one at a time + args are of the form

s around + // "paragraphs" that are wrapped in non-block-level tags, such as anchors, + // phrase emphasis, and spans. The list of tags we're looking for is + // hard-coded: + var block_tags_a = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del" + var block_tags_b = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math" + + // First, look for nested blocks, e.g.: + //

+ // + // The outermost tags must start at the left margin for this to match, and + // the inner nested divs must be indented. + // We need to do this before the next, more liberal match, because the next + // match will start at the first `
` and stop at the first `
`. + + // attacklab: This regex can be expensive when it fails. + + /* + text = text.replace(/ + ( // save in $1 + ^ // start of line (with /m) + <($block_tags_a) // start tag = $2 + \b // word break + // attacklab: hack around khtml/pcre bug... + [^\r]*?\n // any number of lines, minimally matching + // the matching end tag + [ \t]* // trailing spaces/tabs + (?=\n+) // followed by a newline + ) // attacklab: there are sentinel newlines at end of document + /gm,function(){...}}; + */ + text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm, hashElement); + + // + // Now match more liberally, simply from `\n` to `\n` + // + + /* + text = text.replace(/ + ( // save in $1 + ^ // start of line (with /m) + <($block_tags_b) // start tag = $2 + \b // word break + // attacklab: hack around khtml/pcre bug... + [^\r]*? // any number of lines, minimally matching + .* // the matching end tag + [ \t]* // trailing spaces/tabs + (?=\n+) // followed by a newline + ) // attacklab: there are sentinel newlines at end of document + /gm,function(){...}}; + */ + text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm, hashElement); + + // Special case just for
. It was easier to make a special case than + // to make the other regex more complicated. + + /* + text = text.replace(/ + \n // Starting after a blank line + [ ]{0,3} + ( // save in $1 + (<(hr) // start tag = $2 + \b // word break + ([^<>])*? + \/?>) // the matching end tag + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/\n[ ]{0,3}((<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, hashElement); + + // Special case for standalone HTML comments: + + /* + text = text.replace(/ + \n\n // Starting after a blank line + [ ]{0,3} // attacklab: g_tab_width - 1 + ( // save in $1 + -]|-[^>])(?:[^-]|-[^-])*)--) // see http://www.w3.org/TR/html-markup/syntax.html#comments and http://meta.stackoverflow.com/q/95256 + > + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/\n\n[ ]{0,3}(-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g, hashElement); + + // PHP and ASP-style processor instructions ( and <%...%>) + + /* + text = text.replace(/ + (?: + \n\n // Starting after a blank line + ) + ( // save in $1 + [ ]{0,3} // attacklab: g_tab_width - 1 + (?: + <([?%]) // $2 + [^\r]*? + \2> + ) + [ \t]* + (?=\n{2,}) // followed by a blank line + ) + /g,hashElement); + */ + text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, hashElement); + + return text; + } + + function hashElement(wholeMatch, m1) { + var blockText = m1; + + // Undo double lines + blockText = blockText.replace(/^\n+/, ""); + + // strip trailing blank lines + blockText = blockText.replace(/\n+$/g, ""); + + // Replace the element text with a marker ("~KxK" where x is its key) + blockText = "\n\n~K" + (g_html_blocks.push(blockText) - 1) + "K\n\n"; + + return blockText; + } + + function _RunBlockGamut(text, doNotUnhash) { + // + // These are all the transformations that form block-level + // tags like paragraphs, headers, and list items. + // + text = _DoHeaders(text); + + // Do Horizontal Rules: + var replacement = "
\n"; + text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, replacement); + text = text.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm, replacement); + text = text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, replacement); + + text = _DoLists(text); + text = _DoCodeBlocks(text); + text = _DoBlockQuotes(text); + + // We already ran _HashHTMLBlocks() before, in Markdown(), but that + // was to escape raw HTML in the original Markdown source. This time, + // we're escaping the markup we've just created, so that we don't wrap + //

tags around block-level tags. + text = _HashHTMLBlocks(text); + text = _FormParagraphs(text, doNotUnhash); + + return text; + } + + function _RunSpanGamut(text) { + // + // These are all the transformations that occur *within* block-level + // tags like paragraphs, headers, and list items. + // + + text = _DoCodeSpans(text); + text = _EscapeSpecialCharsWithinTagAttributes(text); + text = _EncodeBackslashEscapes(text); + + // Process anchor and image tags. Images must come first, + // because ![foo][f] looks like an anchor. + text = _DoImages(text); + text = _DoAnchors(text); + + // Make links out of things like `` + // Must come after _DoAnchors(), because you can use < and > + // delimiters in inline links like [this](). + text = _DoAutoLinks(text); + text = _EncodeAmpsAndAngles(text); + text = _DoItalicsAndBold(text); + + // Do hard breaks: + text = text.replace(/ +\n/g, "
\n"); + + return text; + } + + function _EscapeSpecialCharsWithinTagAttributes(text) { + // + // Within tags -- meaning between < and > -- encode [\ ` * _] so they + // don't conflict with their use in Markdown for code, italics and strong. + // + + // Build a regex to find HTML tags and comments. See Friedl's + // "Mastering Regular Expressions", 2nd Ed., pp. 200-201. + + // SE: changed the comment part of the regex + + var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|-]|-[^>])(?:[^-]|-[^-])*)--)>)/gi; + + text = text.replace(regex, function (wholeMatch) { + var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g, "$1`"); + tag = escapeCharacters(tag, wholeMatch.charAt(1) == "!" ? "\\`*_/" : "\\`*_"); // also escape slashes in comments to prevent autolinking there -- http://meta.stackoverflow.com/questions/95987 + return tag; + }); + + return text; + } + + function _DoAnchors(text) { + // + // Turn Markdown link shortcuts into XHTML
tags. + // + // + // First, handle reference-style links: [link text] [id] + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[] // or anything else + )* + ) + \] + + [ ]? // one optional space + (?:\n[ ]*)? // one optional newline followed by spaces + + \[ + (.*?) // id = $3 + \] + ) + ()()()() // pad remaining backreferences + /g, writeAnchorTag); + */ + text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writeAnchorTag); + + // + // Next, inline-style links: [link text](url "optional title") + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[\]] // or anything else + )* + ) + \] + \( // literal paren + [ \t]* + () // no id, so leave $3 empty + ? + [ \t]* + ( // $5 + (['"]) // quote char = $6 + (.*?) // Title = $7 + \6 // matching quote + [ \t]* // ignore any spaces/tabs between closing quote and ) + )? // title is optional + \) + ) + /g, writeAnchorTag); + */ + + text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeAnchorTag); + + // + // Last, handle reference-style shortcuts: [link text] + // These must come last in case you've also got [link test][1] + // or [link test](/foo) + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ([^\[\]]+) // link text = $2; can't contain '[' or ']' + \] + ) + ()()()()() // pad rest of backreferences + /g, writeAnchorTag); + */ + text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag); + + return text; + } + + function writeAnchorTag(wholeMatch, m1, m2, m3, m4, m5, m6, m7) { + if (m7 == undefined) m7 = ""; + var whole_match = m1; + var link_text = m2; + var link_id = m3.toLowerCase(); + var url = m4; + var title = m7; + + if (url == "") { + if (link_id == "") { + // lower-case and turn embedded newlines into spaces + link_id = link_text.toLowerCase().replace(/ ?\n/g, " "); + } + url = "#" + link_id; + + if (g_urls.get(link_id) != undefined) { + url = g_urls.get(link_id); + if (g_titles.get(link_id) != undefined) { + title = g_titles.get(link_id); + } + } + else { + if (whole_match.search(/\(\s*\)$/m) > -1) { + // Special case for explicit empty url + url = ""; + } else { + return whole_match; + } + } + } + url = encodeProblemUrlChars(url); + url = escapeCharacters(url, "*_"); + var result = "" + link_text + ""; + + return result; + } + + function _DoImages(text) { + // + // Turn Markdown image shortcuts into tags. + // + + // + // First, handle reference-style labeled images: ![alt text][id] + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + !\[ + (.*?) // alt text = $2 + \] + + [ ]? // one optional space + (?:\n[ ]*)? // one optional newline followed by spaces + + \[ + (.*?) // id = $3 + \] + ) + ()()()() // pad rest of backreferences + /g, writeImageTag); + */ + text = text.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writeImageTag); + + // + // Next, handle inline images: ![alt text](url "optional title") + // Don't forget: encode * and _ + + /* + text = text.replace(/ + ( // wrap whole match in $1 + !\[ + (.*?) // alt text = $2 + \] + \s? // One optional whitespace character + \( // literal paren + [ \t]* + () // no id, so leave $3 empty + ? // src url = $4 + [ \t]* + ( // $5 + (['"]) // quote char = $6 + (.*?) // title = $7 + \6 // matching quote + [ \t]* + )? // title is optional + \) + ) + /g, writeImageTag); + */ + text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeImageTag); + + return text; + } + + function writeImageTag(wholeMatch, m1, m2, m3, m4, m5, m6, m7) { + var whole_match = m1; + var alt_text = m2; + var link_id = m3.toLowerCase(); + var url = m4; + var title = m7; + + if (!title) title = ""; + + if (url == "") { + if (link_id == "") { + // lower-case and turn embedded newlines into spaces + link_id = alt_text.toLowerCase().replace(/ ?\n/g, " "); + } + url = "#" + link_id; + + if (g_urls.get(link_id) != undefined) { + url = g_urls.get(link_id); + if (g_titles.get(link_id) != undefined) { + title = g_titles.get(link_id); + } + } + else { + return whole_match; + } + } + + alt_text = alt_text.replace(/"/g, """); + url = escapeCharacters(url, "*_"); + var result = "\""" + _RunSpanGamut(m1) + "\n\n"; } + ); + + text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm, + function (matchFound, m1) { return "

" + _RunSpanGamut(m1) + "

\n\n"; } + ); + + // atx-style headers: + // # Header 1 + // ## Header 2 + // ## Header 2 with closing hashes ## + // ... + // ###### Header 6 + // + + /* + text = text.replace(/ + ^(\#{1,6}) // $1 = string of #'s + [ \t]* + (.+?) // $2 = Header text + [ \t]* + \#* // optional closing #'s (not counted) + \n+ + /gm, function() {...}); + */ + + text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm, + function (wholeMatch, m1, m2) { + var h_level = m1.length; + return "" + _RunSpanGamut(m2) + "\n\n"; + } + ); + + return text; + } + + function _DoLists(text) { + // + // Form HTML ordered (numbered) and unordered (bulleted) lists. + // + + // attacklab: add sentinel to hack around khtml/safari bug: + // http://bugs.webkit.org/show_bug.cgi?id=11231 + text += "~0"; + + // Re-usable pattern to match any entirel ul or ol list: + + /* + var whole_list = / + ( // $1 = whole list + ( // $2 + [ ]{0,3} // attacklab: g_tab_width - 1 + ([*+-]|\d+[.]) // $3 = first list item marker + [ \t]+ + ) + [^\r]+? + ( // $4 + ~0 // sentinel for workaround; should be $ + | + \n{2,} + (?=\S) + (?! // Negative lookahead for another list item marker + [ \t]* + (?:[*+-]|\d+[.])[ \t]+ + ) + ) + ) + /g + */ + var whole_list = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + + if (g_list_level) { + text = text.replace(whole_list, function (wholeMatch, m1, m2) { + var list = m1; + var list_type = (m2.search(/[*+-]/g) > -1) ? "ul" : "ol"; + + var result = _ProcessListItems(list, list_type); + + // Trim any trailing whitespace, to put the closing `` + // up on the preceding line, to get it past the current stupid + // HTML block parser. This is a hack to work around the terrible + // hack that is the HTML block parser. + result = result.replace(/\s+$/, ""); + result = "<" + list_type + ">" + result + "\n"; + return result; + }); + } else { + whole_list = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g; + text = text.replace(whole_list, function (wholeMatch, m1, m2, m3) { + var runup = m1; + var list = m2; + + var list_type = (m3.search(/[*+-]/g) > -1) ? "ul" : "ol"; + var result = _ProcessListItems(list, list_type); + result = runup + "<" + list_type + ">\n" + result + "\n"; + return result; + }); + } + + // attacklab: strip sentinel + text = text.replace(/~0/, ""); + + return text; + } + + var _listItemMarkers = { ol: "\\d+[.]", ul: "[*+-]" }; + + function _ProcessListItems(list_str, list_type) { + // + // Process the contents of a single ordered or unordered list, splitting it + // into individual list items. + // + // list_type is either "ul" or "ol". + + // The $g_list_level global keeps track of when we're inside a list. + // Each time we enter a list, we increment it; when we leave a list, + // we decrement. If it's zero, we're not in a list anymore. + // + // We do this because when we're not inside a list, we want to treat + // something like this: + // + // I recommend upgrading to version + // 8. Oops, now this line is treated + // as a sub-list. + // + // As a single paragraph, despite the fact that the second line starts + // with a digit-period-space sequence. + // + // Whereas when we're inside a list (or sub-list), that line will be + // treated as the start of a sub-list. What a kludge, huh? This is + // an aspect of Markdown's syntax that's hard to parse perfectly + // without resorting to mind-reading. Perhaps the solution is to + // change the syntax rules such that sub-lists must start with a + // starting cardinal number; e.g. "1." or "a.". + + g_list_level++; + + // trim trailing blank lines: + list_str = list_str.replace(/\n{2,}$/, "\n"); + + // attacklab: add sentinel to emulate \z + list_str += "~0"; + + // In the original attacklab showdown, list_type was not given to this function, and anything + // that matched /[*+-]|\d+[.]/ would just create the next
  • , causing this mismatch: + // + // Markdown rendered by WMD rendered by MarkdownSharp + // ------------------------------------------------------------------ + // 1. first 1. first 1. first + // 2. second 2. second 2. second + // - third 3. third * third + // + // We changed this to behave identical to MarkdownSharp. This is the constructed RegEx, + // with {MARKER} being one of \d+[.] or [*+-], depending on list_type: + + /* + list_str = list_str.replace(/ + (^[ \t]*) // leading whitespace = $1 + ({MARKER}) [ \t]+ // list marker = $2 + ([^\r]+? // list item text = $3 + (\n+) + ) + (?= + (~0 | \2 ({MARKER}) [ \t]+) + ) + /gm, function(){...}); + */ + + var marker = _listItemMarkers[list_type]; + var re = new RegExp("(^[ \\t]*)(" + marker + ")[ \\t]+([^\\r]+?(\\n+))(?=(~0|\\1(" + marker + ")[ \\t]+))", "gm"); + var last_item_had_a_double_newline = false; + list_str = list_str.replace(re, + function (wholeMatch, m1, m2, m3) { + var item = m3; + var leading_space = m1; + var ends_with_double_newline = /\n\n$/.test(item); + var contains_double_newline = ends_with_double_newline || item.search(/\n{2,}/) > -1; + + if (contains_double_newline || last_item_had_a_double_newline) { + item = _RunBlockGamut(_Outdent(item), /* doNotUnhash = */true); + } + else { + // Recursion for sub-lists: + item = _DoLists(_Outdent(item)); + item = item.replace(/\n$/, ""); // chomp(item) + item = _RunSpanGamut(item); + } + last_item_had_a_double_newline = ends_with_double_newline; + return "
  • " + item + "
  • \n"; + } + ); + + // attacklab: strip sentinel + list_str = list_str.replace(/~0/g, ""); + + g_list_level--; + return list_str; + } + + function _DoCodeBlocks(text) { + // + // Process Markdown `
    ` blocks.
    +            //  
    +
    +            /*
    +            text = text.replace(/
    +                (?:\n\n|^)
    +                (                               // $1 = the code block -- one or more lines, starting with a space/tab
    +                    (?:
    +                        (?:[ ]{4}|\t)           // Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
    +                        .*\n+
    +                    )+
    +                )
    +                (\n*[ ]{0,3}[^ \t\n]|(?=~0))    // attacklab: g_tab_width
    +            /g ,function(){...});
    +            */
    +
    +            // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
    +            text += "~0";
    +
    +            text = text.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,
    +                function (wholeMatch, m1, m2) {
    +                    var codeblock = m1;
    +                    var nextChar = m2;
    +
    +                    codeblock = _EncodeCode(_Outdent(codeblock));
    +                    codeblock = _Detab(codeblock);
    +                    codeblock = codeblock.replace(/^\n+/g, ""); // trim leading newlines
    +                    codeblock = codeblock.replace(/\n+$/g, ""); // trim trailing whitespace
    +
    +                    codeblock = "
    " + codeblock + "\n
    "; + + return "\n\n" + codeblock + "\n\n" + nextChar; + } + ); + + // attacklab: strip sentinel + text = text.replace(/~0/, ""); + + return text; + } + + function hashBlock(text) { + text = text.replace(/(^\n+|\n+$)/g, ""); + return "\n\n~K" + (g_html_blocks.push(text) - 1) + "K\n\n"; + } + + function _DoCodeSpans(text) { + // + // * Backtick quotes are used for spans. + // + // * You can use multiple backticks as the delimiters if you want to + // include literal backticks in the code span. So, this input: + // + // Just type ``foo `bar` baz`` at the prompt. + // + // Will translate to: + // + //

    Just type foo `bar` baz at the prompt.

    + // + // There's no arbitrary limit to the number of backticks you + // can use as delimters. If you need three consecutive backticks + // in your code, use four for delimiters, etc. + // + // * You can use spaces to get literal backticks at the edges: + // + // ... type `` `bar` `` ... + // + // Turns to: + // + // ... type `bar` ... + // + + /* + text = text.replace(/ + (^|[^\\]) // Character before opening ` can't be a backslash + (`+) // $2 = Opening run of ` + ( // $3 = The code block + [^\r]*? + [^`] // attacklab: work around lack of lookbehind + ) + \2 // Matching closer + (?!`) + /gm, function(){...}); + */ + + text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, + function (wholeMatch, m1, m2, m3, m4) { + var c = m3; + c = c.replace(/^([ \t]*)/g, ""); // leading whitespace + c = c.replace(/[ \t]*$/g, ""); // trailing whitespace + c = _EncodeCode(c); + return m1 + "" + c + ""; + } + ); + + return text; + } + + function _EncodeCode(text) { + // + // Encode/escape certain characters inside Markdown code runs. + // The point is that in code, these characters are literals, + // and lose their special Markdown meanings. + // + // Encode all ampersands; HTML entities are not + // entities within a Markdown code span. + text = text.replace(/&/g, "&"); + + // Do the angle bracket song and dance: + text = text.replace(//g, ">"); + + // Now, escape characters that are magic in Markdown: + text = escapeCharacters(text, "\*_{}[]\\", false); + + // jj the line above breaks this: + //--- + + //* Item + + // 1. Subitem + + // special char: * + //--- + + return text; + } + + function _DoItalicsAndBold(text) { + + // must go first: + text = text.replace(/([\W_]|^)(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\2([\W_]|$)/g, + "$1$3$4"); + + text = text.replace(/([\W_]|^)(\*|_)(?=\S)([^\r\*_]*?\S)\2([\W_]|$)/g, + "$1$3$4"); + + return text; + } + + function _DoBlockQuotes(text) { + + /* + text = text.replace(/ + ( // Wrap whole match in $1 + ( + ^[ \t]*>[ \t]? // '>' at the start of a line + .+\n // rest of the first line + (.+\n)* // subsequent consecutive lines + \n* // blanks + )+ + ) + /gm, function(){...}); + */ + + text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, + function (wholeMatch, m1) { + var bq = m1; + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + + bq = bq.replace(/^[ \t]*>[ \t]?/gm, "~0"); // trim one level of quoting + + // attacklab: clean up hack + bq = bq.replace(/~0/g, ""); + + bq = bq.replace(/^[ \t]+$/gm, ""); // trim whitespace-only lines + bq = _RunBlockGamut(bq); // recurse + + bq = bq.replace(/(^|\n)/g, "$1 "); + // These leading spaces screw with
     content, so we need to fix that:
    +                    bq = bq.replace(
    +                            /(\s*
    [^\r]+?<\/pre>)/gm,
    +                        function (wholeMatch, m1) {
    +                            var pre = m1;
    +                            // attacklab: hack around Konqueror 3.5.4 bug:
    +                            pre = pre.replace(/^  /mg, "~0");
    +                            pre = pre.replace(/~0/g, "");
    +                            return pre;
    +                        });
    +
    +                    return hashBlock("
    \n" + bq + "\n
    "); + } + ); + return text; + } + + function _FormParagraphs(text, doNotUnhash) { + // + // Params: + // $text - string to process with html

    tags + // + + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ""); + text = text.replace(/\n+$/g, ""); + + var grafs = text.split(/\n{2,}/g); + var grafsOut = []; + + // + // Wrap

    tags. + // + var end = grafs.length; + for (var i = 0; i < end; i++) { + var str = grafs[i]; + + // if this is an HTML marker, copy it + if (str.search(/~K(\d+)K/g) >= 0) { + grafsOut.push(str); + } + else if (str.search(/\S/) >= 0) { + str = _RunSpanGamut(str); + str = str.replace(/^([ \t]*)/g, "

    "); + str += "

    " + grafsOut.push(str); + } + + } + // + // Unhashify HTML blocks + // + if (!doNotUnhash) { + end = grafsOut.length; + for (var i = 0; i < end; i++) { + // if this is a marker for an html block... + while (grafsOut[i].search(/~K(\d+)K/) >= 0) { + var blockText = g_html_blocks[RegExp.$1]; + blockText = blockText.replace(/\$/g, "$$$$"); // Escape any dollar signs + grafsOut[i] = grafsOut[i].replace(/~K\d+K/, blockText); + } + } + } + return grafsOut.join("\n\n"); + } + + function _EncodeAmpsAndAngles(text) { + // Smart processing for ampersands and angle brackets that need to be encoded. + + // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: + // http://bumppo.net/projects/amputator/ + text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&"); + + // Encode naked <'s + text = text.replace(/<(?![a-z\/?\$!])/gi, "<"); + + return text; + } + + function _EncodeBackslashEscapes(text) { + // + // Parameter: String. + // Returns: The string, with after processing the following backslash + // escape sequences. + // + + // attacklab: The polite way to do this is with the new + // escapeCharacters() function: + // + // text = escapeCharacters(text,"\\",true); + // text = escapeCharacters(text,"`*_{}[]()>#+-.!",true); + // + // ...but we're sidestepping its use of the (slow) RegExp constructor + // as an optimization for Firefox. This function gets called a LOT. + + text = text.replace(/\\(\\)/g, escapeCharacters_callback); + text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, escapeCharacters_callback); + return text; + } + + function _DoAutoLinks(text) { + + // note that at this point, all other URL in the text are already + // hyperlinked as + // *except* for the case + + // automatically add < and > around unadorned raw hyperlinks + // must be preceded by space/BOF and followed by non-word/EOF character + text = text.replace(/(^|\s)(https?|ftp)(:\/\/[-A-Z0-9+&@#\/%?=~_|\[\]\(\)!:,\.;]*[-A-Z0-9+&@#\/%=~_|\[\]])($|\W)/gi, "$1<$2$3>$4"); + + // autolink anything like + + var replacer = function (wholematch, m1) { return "" + pluginHooks.plainLinkText(m1) + ""; } + text = text.replace(/<((https?|ftp):[^'">\s]+)>/gi, replacer); + + // Email addresses: + /* + text = text.replace(/ + < + (?:mailto:)? + ( + [-.\w]+ + \@ + [-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+ + ) + > + /gi, _DoAutoLinks_callback()); + */ + + /* disabling email autolinking, since we don't do that on the server, either + text = text.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi, + function(wholeMatch,m1) { + return _EncodeEmailAddress( _UnescapeSpecialChars(m1) ); + } + ); + */ + return text; + } + + function _UnescapeSpecialChars(text) { + // + // Swap back in all the special characters we've hidden. + // + text = text.replace(/~E(\d+)E/g, + function (wholeMatch, m1) { + var charCodeToReplace = parseInt(m1); + return String.fromCharCode(charCodeToReplace); + } + ); + return text; + } + + function _Outdent(text) { + // + // Remove one level of line-leading tabs or spaces + // + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + + text = text.replace(/^(\t|[ ]{1,4})/gm, "~0"); // attacklab: g_tab_width + + // attacklab: clean up hack + text = text.replace(/~0/g, "") + + return text; + } + + function _Detab(text) { + if (!/\t/.test(text)) + return text; + + var spaces = [" ", " ", " ", " "], + skew = 0, + v; + + return text.replace(/[\n\t]/g, function (match, offset) { + if (match === "\n") { + skew = offset + 1; + return match; + } + v = (offset - skew) % 4; + skew = offset + 1; + return spaces[v]; + }); + } + + // + // attacklab: Utility functions + // + + var _problemUrlChars = /(?:["'*()[\]:]|~D)/g; + + // hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems + function encodeProblemUrlChars(url) { + if (!url) + return ""; + + var len = url.length; + + return url.replace(_problemUrlChars, function (match, offset) { + if (match == "~D") // escape for dollar + return "%24"; + if (match == ":") { + if (offset == len - 1 || /[0-9\/]/.test(url.charAt(offset + 1))) + return ":" + } + return "%" + match.charCodeAt(0).toString(16); + }); + } + + + function escapeCharacters(text, charsToEscape, afterBackslash) { + // First we have to escape the escape characters so that + // we can build a character class out of them + var regexString = "([" + charsToEscape.replace(/([\[\]\\])/g, "\\$1") + "])"; + + if (afterBackslash) { + regexString = "\\\\" + regexString; + } + + var regex = new RegExp(regexString, "g"); + text = text.replace(regex, escapeCharacters_callback); + + return text; + } + + + function escapeCharacters_callback(wholeMatch, m1) { + var charCodeToEscape = m1.charCodeAt(0); + return "~E" + charCodeToEscape + "E"; + } + + }; // end of the Markdown.Converter constructor + +})(); diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/MathJax.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/MathJax.js new file mode 100644 index 000000000..99ebf8d56 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/MathJax.js @@ -0,0 +1,30 @@ +/************************************************************* + * + * MathJax.js + * + * The main code for the MathJax math-typesetting library. See + * http://www.mathjax.org/ for details. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2009-2012 Design Science, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (!window.MathJax) {window.MathJax = {}} + +MathJax.isPacked = true; + +if(document.getElementById&&document.childNodes&&document.createElement){if(!window.MathJax){window.MathJax={}}if(!MathJax.Hub){MathJax.version="2.0";MathJax.fileversion="2.0.3";(function(d){var b=window[d];if(!b){b=window[d]={}}var f=[];var c=function(g){var h=g.constructor;if(!h){h=new Function("")}for(var i in g){if(i!=="constructor"&&g.hasOwnProperty(i)){h[i]=g[i]}}return h};var a=function(){return new Function("return arguments.callee.Init.call(this,arguments)")};var e=a();e.prototype={bug_test:1};if(!e.prototype.bug_test){a=function(){return function(){return arguments.callee.Init.call(this,arguments)}}}b.Object=c({constructor:a(),Subclass:function(g,i){var h=a();h.SUPER=this;h.Init=this.Init;h.Subclass=this.Subclass;h.Augment=this.Augment;h.protoFunction=this.protoFunction;h.can=this.can;h.has=this.has;h.isa=this.isa;h.prototype=new this(f);h.prototype.constructor=h;h.Augment(g,i);return h},Init:function(g){var h=this;if(g.length===1&&g[0]===f){return h}if(!(h instanceof g.callee)){h=new g.callee(f)}return h.Init.apply(h,g)||h},Augment:function(g,h){var i;if(g!=null){for(i in g){if(g.hasOwnProperty(i)){this.protoFunction(i,g[i])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}if(h!=null){for(i in h){if(h.hasOwnProperty(i)){this[i]=h[i]}}}return this},protoFunction:function(h,g){this.prototype[h]=g;if(typeof g==="function"){g.SUPER=this.SUPER.prototype}},prototype:{Init:function(){},SUPER:function(g){return g.callee.SUPER},can:function(g){return typeof(this[g])==="function"},has:function(g){return typeof(this[g])!=="undefined"},isa:function(g){return(g instanceof Object)&&(this instanceof g)}},can:function(g){return this.prototype.can.call(this,g)},has:function(g){return this.prototype.has.call(this,g)},isa:function(h){var g=this;while(g){if(g===h){return true}else{g=g.SUPER}}return false},SimpleSUPER:c({constructor:function(g){return this.SimpleSUPER.define(g)},define:function(g){var i={};if(g!=null){for(var h in g){if(g.hasOwnProperty(h)){i[h]=this.wrap(h,g[h])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){i.toString=this.wrap("toString",g.toString)}}return i},wrap:function(i,h){if(typeof(h)==="function"&&h.toString().match(/\.\s*SUPER\s*\(/)){var g=new Function(this.wrapper);g.label=i;g.original=h;h=g;g.toString=this.stringify}return h},wrapper:function(){var h=arguments.callee;this.SUPER=h.SUPER[h.label];try{var g=h.original.apply(this,arguments)}catch(i){delete this.SUPER;throw i}delete this.SUPER;return g}.toString().replace(/^\s*function\s*\(\)\s*\{\s*/i,"").replace(/\s*\}\s*$/i,""),toString:function(){return this.original.toString.apply(this.original,arguments)}})})})("MathJax");(function(BASENAME){var BASE=window[BASENAME];if(!BASE){BASE=window[BASENAME]={}}var CALLBACK=function(data){var cb=new Function("return arguments.callee.execute.apply(arguments.callee,arguments)");for(var id in CALLBACK.prototype){if(CALLBACK.prototype.hasOwnProperty(id)){if(typeof(data[id])!=="undefined"){cb[id]=data[id]}else{cb[id]=CALLBACK.prototype[id]}}}cb.toString=CALLBACK.prototype.toString;return cb};CALLBACK.prototype={isCallback:true,hook:function(){},data:[],object:window,execute:function(){if(!this.called||this.autoReset){this.called=!this.autoReset;return this.hook.apply(this.object,this.data.concat([].slice.call(arguments,0)))}},reset:function(){delete this.called},toString:function(){return this.hook.toString.apply(this.hook,arguments)}};var ISCALLBACK=function(f){return(typeof(f)==="function"&&f.isCallback)};var EVAL=function(code){return eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1");if(window.__TeSt_VaR__){try{delete window.__TeSt_VaR__}catch(error){window.__TeSt_VaR__=null}}else{if(window.execScript){EVAL=function(code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";window.execScript(code);var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result}}else{EVAL=function(code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";var head=(document.getElementsByTagName("head"))[0];if(!head){head=document.body}var script=document.createElement("script");script.appendChild(document.createTextNode(code));head.appendChild(script);head.removeChild(script);var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result}}}var USING=function(args,i){if(arguments.length>1){if(arguments.length===2&&!(typeof arguments[0]==="function")&&arguments[0] instanceof Object&&typeof arguments[1]==="number"){args=[].slice.call(args,i)}else{args=[].slice.call(arguments,0)}}if(args instanceof Array&&args.length===1){args=args[0]}if(typeof args==="function"){if(args.execute===CALLBACK.prototype.execute){return args}return CALLBACK({hook:args})}else{if(args instanceof Array){if(typeof(args[0])==="string"&&args[1] instanceof Object&&typeof args[1][args[0]]==="function"){return CALLBACK({hook:args[1][args[0]],object:args[1],data:args.slice(2)})}else{if(typeof args[0]==="function"){return CALLBACK({hook:args[0],data:args.slice(1)})}else{if(typeof args[1]==="function"){return CALLBACK({hook:args[1],object:args[0],data:args.slice(2)})}}}}else{if(typeof(args)==="string"){return CALLBACK({hook:EVAL,data:[args]})}else{if(args instanceof Object){return CALLBACK(args)}else{if(typeof(args)==="undefined"){return CALLBACK({})}}}}}throw Error("Can't make callback from given data")};var DELAY=function(time,callback){callback=USING(callback);callback.timeout=setTimeout(callback,time);return callback};var WAITFOR=function(callback,signal){callback=USING(callback);if(!callback.called){WAITSIGNAL(callback,signal);signal.pending++}};var WAITEXECUTE=function(){var signals=this.signal;delete this.signal;this.execute=this.oldExecute;delete this.oldExecute;var result=this.execute.apply(this,arguments);if(ISCALLBACK(result)&&!result.called){WAITSIGNAL(result,signals)}else{for(var i=0,m=signals.length;i0&&priorityf){f=document.styleSheets.length}if(!h){h=(document.getElementsByTagName("head"))[0];if(!h){h=document.body}}return h};var e=[];var b=function(){for(var j=0,h=e.length;j=this.timeout){h(this.STATUS.ERROR);return 1}return 0},file:function(i,h){if(h<0){a.Ajax.loadTimeout(i)}else{a.Ajax.loadComplete(i)}},execute:function(){this.hook.call(this.object,this,this.data[0],this.data[1])},checkSafari2:function(h,i,j){if(h.time(j)){return}if(document.styleSheets.length>i&&document.styleSheets[i].cssRules&&document.styleSheets[i].cssRules.length){j(h.STATUS.OK)}else{setTimeout(h,h.delay)}},checkLength:function(h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){if(j.message.match(/protected variable|restricted URI/)){l=1}else{if(j.message.match(/Security error/)){l=1}}}if(l){setTimeout(a.Callback([m,h.STATUS.OK]),0)}else{setTimeout(h,h.delay)}}},loadComplete:function(h){h=this.fileURL(h);var i=this.loading[h];if(i&&!i.preloaded){a.Message.Clear(i.message);clearTimeout(i.timeout);if(i.script){if(e.length===0){setTimeout(b,0)}e.push(i.script)}this.loaded[h]=i.status;delete this.loading[h];this.addHook(h,i.callback)}else{if(i){delete this.loading[h]}this.loaded[h]=this.STATUS.OK;i={status:this.STATUS.OK}}if(!this.loadHooks[h]){return null}return this.loadHooks[h].Execute(i.status)},loadTimeout:function(h){if(this.loading[h].timeout){clearTimeout(this.loading[h].timeout)}this.loading[h].status=this.STATUS.ERROR;this.loadError(h);this.loadComplete(h)},loadError:function(h){a.Message.Set("File failed to load: "+h,null,2000);a.Hub.signal.Post(["file load error",h])},Styles:function(j,k){var h=this.StyleString(j);if(h===""){k=a.Callback(k);k()}else{var i=document.createElement("style");i.type="text/css";this.head=g(this.head);this.head.appendChild(i);if(i.styleSheet&&typeof(i.styleSheet.cssText)!=="undefined"){i.styleSheet.cssText=h}else{i.appendChild(document.createTextNode(h))}k=this.timer.create.call(this,k,i)}return k},StyleString:function(m){if(typeof(m)==="string"){return m}var j="",n,l;for(n in m){if(m.hasOwnProperty(n)){if(typeof m[n]==="string"){j+=n+" {"+m[n]+"}\n"}else{if(m[n] instanceof Array){for(var k=0;k1?d[1]:""));f=null}if(e&&(!b.preJax||d)){c.nodeValue=c.nodeValue.replace(b.postJax,(e.length>1?e[1]:""))}if(f&&!f.nodeValue.match(/\S/)){f=f.previousSibling}}if(b.preRemoveClass&&f&&f.className===b.preRemoveClass){a.MathJax.preview=f}a.MathJax.checked=1},processInput:function(a){var b,i=MathJax.ElementJax.STATE;var h,e,d=a.scripts.length;try{while(a.ithis.processUpdateTime&&a.i1){d.jax[a.outputJax].push(b)}b.MathJax.state=c.OUTPUT},prepareOutput:function(c,f){while(c.jthis.processUpdateTime&&h.i=0;o--){if(b[o].src.match(d)){q.script=b[o].innerHTML;if(RegExp.$2){var r=RegExp.$2.substr(1).split(/\&/);for(var n=0,h=r.length;n=parseInt(x[y])}}return true},Select:function(j){var i=j[c.Browser];if(i){return i(c.Browser)}return null}};var g=navigator.userAgent.replace(/^Mozilla\/(\d+\.)+\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\/\d+[^ ]*-[^ ]*\.([a-z][a-z])?\d+ /i,"").replace(/Gentoo |Ubuntu\/(\d+\.)*\d+ (\([^)]*\) )?/,"");c.Browser=c.Insert(c.Insert(new String("Unknown"),{version:"0.0"}),a);for(var t in a){if(a.hasOwnProperty(t)){if(a[t]&&t.substr(0,2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){continue}c.Browser=c.Insert(new String(t),a);var p=new RegExp(".*(Version)/((?:\\d+\\.)+\\d+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\d+\\.)*\\d+)|(?:^|\\(| )([a-z][-a-z0-9._: ]+|(?:Apple)?WebKit)/((?:\\d+\\.)+\\d+)");var s=p.exec(g)||["","","","unknown","0.0"];c.Browser.name=(s[1]=="Version"?t:(s[3]||s[5]));c.Browser.version=s[2]||s[4]||s[6];break}}}c.Browser.Select({Safari:function(j){var i=parseInt((String(j.version).split("."))[0]);if(i>85){j.webkit=j.version}if(i>=534){j.version="5.1"}else{if(i>=533){j.version="5.0"}else{if(i>=526){j.version="4.0"}else{if(i>=525){j.version="3.1"}else{if(i>500){j.version="3.0"}else{if(i>400){j.version="2.0"}else{if(i>85){j.version="1.0"}}}}}}}j.isMobile=(navigator.appVersion.match(/Mobile/i)!=null);j.noContextMenu=j.isMobile},Firefox:function(j){if((j.version==="0.0"||navigator.userAgent.match(/Firefox/)==null)&&navigator.product==="Gecko"){var m=navigator.userAgent.match(/[\/ ]rv:(\d+\.\d.*?)[\) ]/);if(m){j.version=m[1]}else{var i=(navigator.buildID||navigator.productSub||"0").substr(0,8);if(i>="20111220"){j.version="9.0"}else{if(i>="20111120"){j.version="8.0"}else{if(i>="20110927"){j.version="7.0"}else{if(i>="20110816"){j.version="6.0"}else{if(i>="20110621"){j.version="5.0"}else{if(i>="20110320"){j.version="4.0"}else{if(i>="20100121"){j.version="3.6"}else{if(i>="20090630"){j.version="3.5"}else{if(i>="20080617"){j.version="3.0"}else{if(i>="20061024"){j.version="2.0"}}}}}}}}}}}}j.isMobile=(navigator.appVersion.match(/Android/i)!=null||navigator.userAgent.match(/ Fennec\//)!=null)},Opera:function(i){i.version=opera.version()},MSIE:function(j){j.isIE9=!!(document.documentMode&&(window.performance||window.msPerformance));MathJax.HTML.setScriptBug=!j.isIE9||document.documentMode<9;var v=false;try{new ActiveXObject("MathPlayer.Factory.1");v=true}catch(m){}if(v&&!q.params.NoMathPlayer){var i=document.createElement("object");i.id="mathplayer";i.classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987";document.getElementsByTagName("head")[0].appendChild(i);document.namespaces.add("m","http://www.w3.org/1998/Math/MathML");j.hasMathPlayer=true;if(document.readyState&&(document.readyState==="loading"||document.readyState==="interactive")){document.write('');j.mpImported=true}}else{document.namespaces.add("mjx_IE_fix","http://www.w3.org/1999/xlink")}}});c.Browser.Select(MathJax.Message.browsers);c.queue=f.Callback.Queue();c.queue.Push(["Post",q.signal,"Begin"],["Config",q],["Cookie",q],["Styles",q],["Message",q],function(){var i=f.Callback.Queue(q.Jax(),q.Extensions());return i.Push({})},["Menu",q],q.onLoad(),function(){MathJax.isReady=true},["Typeset",q],["Hash",q],["MenuZoom",q],["Post",q.signal,"End"])})("MathJax")}}; + diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/boilerplate.css b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/boilerplate.css new file mode 100644 index 000000000..2b1535f44 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/boilerplate.css @@ -0,0 +1,77 @@ +/** + * HTML5 ✰ Boilerplate + * + * style.css contains a reset, font normalization and some base styles. + * + * Credit is left where credit is due. + * Much inspiration was taken from these projects: + * - yui.yahooapis.com/2.8.1/build/base/base.css + * - camendesign.com/design/ + * - praegnanz.de/weblog/htmlcssjs-kickstart + */ + + +/** + * html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline) + * v1.6.1 2010-09-17 | Authors: Eric Meyer & Richard Clark + * html5doctor.com/html-5-reset-stylesheet/ + */ + +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, +small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, figcaption, figure, +footer, header, hgroup, menu, nav, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +sup { vertical-align: super; } +sub { vertical-align: sub; } + +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +blockquote, q { quotes: none; } + +blockquote:before, blockquote:after, +q:before, q:after { content: ""; content: none; } + +ins { background-color: #ff9; color: #000; text-decoration: none; } + +mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; } + +del { text-decoration: line-through; } + +abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; } + +table { border-collapse: collapse; border-spacing: 0; } + +hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } + +input, select { vertical-align: middle; } + + +/** + * Font normalization inspired by YUI Library's fonts.css: developer.yahoo.com/yui/ + */ + +body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */ +select, input, textarea, button { font:99% sans-serif; } + +/* Normalize monospace sizing: + en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome */ +pre, code, kbd, samp { font-family: monospace, sans-serif; } + +em,i { font-style: italic; } +b,strong { font-weight: bold; } diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/cell.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/cell.js new file mode 100644 index 000000000..4dbb9e6e6 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/cell.js @@ -0,0 +1,220 @@ +//---------------------------------------------------------------------------- +// Copyright (C) 2008-2011 The IPython Development Team +// +// Distributed under the terms of the BSD License. The full license is in +// the file COPYING, distributed as part of this software. +//---------------------------------------------------------------------------- + +//============================================================================ +// Cell +//============================================================================ + +var IPython = (function (IPython) { + + var utils = IPython.utils; + + + var Cell = function () { + this.placeholder = this.placeholder || ''; + this.read_only = false; + this.selected = false; + this.element = null; + this.metadata = {}; + // load this from metadata later ? + this.user_highlight == 'auto'; + this.create_element(); + if (this.element !== null) { + this.element.data("cell", this); + this.bind_events(); + } + this.cell_id = utils.uuid(); + }; + + + // Subclasses must implement create_element. + Cell.prototype.create_element = function () {}; + + + Cell.prototype.bind_events = function () { + var that = this; + // We trigger events so that Cell doesn't have to depend on Notebook. + that.element.click(function (event) { + if (that.selected === false) { + $([IPython.events]).trigger('select.Cell', {'cell':that}); + } + }); + that.element.focusin(function (event) { + if (that.selected === false) { + $([IPython.events]).trigger('select.Cell', {'cell':that}); + } + }); + }; + + + // typeset with MathJax if MathJax is available + Cell.prototype.typeset = function () { + if (window.MathJax){ + MathJax.Hub.Queue(["Typeset",MathJax.Hub]); + } + }; + + + Cell.prototype.select = function () { + this.element.addClass('ui-widget-content ui-corner-all'); + this.selected = true; + }; + + + Cell.prototype.unselect = function () { + this.element.removeClass('ui-widget-content ui-corner-all'); + this.selected = false; + }; + + + Cell.prototype.get_text = function () { + }; + + + Cell.prototype.set_text = function (text) { + }; + + + Cell.prototype.refresh = function () { + this.code_mirror.refresh(); + }; + + + Cell.prototype.edit = function () { + }; + + + Cell.prototype.render = function () { + }; + + + Cell.prototype.toJSON = function () { + var data = {}; + data.metadata = this.metadata; + return data; + }; + + + Cell.prototype.fromJSON = function (data) { + if (data.metadata !== undefined) { + this.metadata = data.metadata; + } + }; + + + Cell.prototype.is_splittable = function () { + return true; + }; + + + Cell.prototype.get_pre_cursor = function () { + var cursor = this.code_mirror.getCursor(); + var text = this.code_mirror.getRange({line:0,ch:0}, cursor); + text = text.replace(/^\n+/, '').replace(/\n+$/, ''); + return text; + } + + + Cell.prototype.get_post_cursor = function () { + var cursor = this.code_mirror.getCursor(); + var last_line_num = this.code_mirror.lineCount()-1; + var last_line_len = this.code_mirror.getLine(last_line_num).length; + var end = {line:last_line_num, ch:last_line_len} + var text = this.code_mirror.getRange(cursor, end); + text = text.replace(/^\n+/, '').replace(/\n+$/, ''); + return text; + }; + + + Cell.prototype.grow = function(element) { + // Grow the cell by hand. This is used upon reloading from JSON, when the + // autogrow handler is not called. + var dom = element.get(0); + var lines_count = 0; + // modified split rule from + // http://stackoverflow.com/questions/2035910/how-to-get-the-number-of-lines-in-a-textarea/2036424#2036424 + var lines = dom.value.split(/\r|\r\n|\n/); + lines_count = lines.length; + if (lines_count >= 1) { + dom.rows = lines_count; + } else { + dom.rows = 1; + } + }; + + + Cell.prototype.toggle_line_numbers = function () { + if (this.code_mirror.getOption('lineNumbers') == false) { + this.code_mirror.setOption('lineNumbers', true); + } else { + this.code_mirror.setOption('lineNumbers', false); + } + this.code_mirror.refresh(); + }; + + Cell.prototype.force_highlight = function(mode) { + this.user_highlight = mode; + this.auto_highlight(); + }; + + Cell.prototype._auto_highlight = function (modes) { + //Here we handle manually selected modes + if( this.user_highlight != undefined && this.user_highlight != 'auto' ) + { + var mode = this.user_highlight; + CodeMirror.autoLoadMode(this.code_mirror, mode); + this.code_mirror.setOption('mode', mode); + return; + } + var first_line = this.code_mirror.getLine(0); + // loop on every pairs + for( var mode in modes) { + var regs = modes[mode]['reg']; + // only one key every time but regexp can't be keys... + for(var reg in regs ) { + // here we handle non magic_modes + if(first_line.match(regs[reg]) != null) { + if (mode.search('magic_') != 0) { + this.code_mirror.setOption('mode',mode); + CodeMirror.autoLoadMode(this.code_mirror, mode); + return; + } + var open = modes[mode]['open']|| "%%"; + var close = modes[mode]['close']|| "%%end"; + var mmode = mode; + mode = mmode.substr(6); + CodeMirror.autoLoadMode(this.code_mirror, mode); + // create on the fly a mode that swhitch between + // plain/text and smth else otherwise `%%` is + // source of some highlight issues. + // we use patchedGetMode to circumvent a bug in CM + CodeMirror.defineMode(mmode , function(config) { + return CodeMirror.multiplexingMode( + CodeMirror.patchedGetMode(config, 'text/plain'), + // always set someting on close + {open: open, close: close, + mode: CodeMirror.patchedGetMode(config, mode), + delimStyle: "delimit" + } + ); + }); + this.code_mirror.setOption('mode', mmode); + return; + } + } + } + // fallback on default (python) + var default_mode = this.default_mode || 'text/plain'; + this.code_mirror.setOption('mode', default_mode); + }; + + IPython.Cell = Cell; + + return IPython; + +}(IPython)); + diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codecell.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codecell.js new file mode 100644 index 000000000..eb841ef6b --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codecell.js @@ -0,0 +1,322 @@ +//---------------------------------------------------------------------------- +// Copyright (C) 2008-2011 The IPython Development Team +// +// Distributed under the terms of the BSD License. The full license is in +// the file COPYING, distributed as part of this software. +//---------------------------------------------------------------------------- + +//============================================================================ +// CodeCell +//============================================================================ + +var IPython = (function (IPython) { + "use strict"; + + var utils = IPython.utils; + var key = IPython.utils.keycodes; + CodeMirror.modeURL = "/static/codemirror/mode/%N/%N.js"; + + var CodeCell = function (kernel) { + // The kernel doesn't have to be set at creation time, in that case + // it will be null and set_kernel has to be called later. + this.kernel = kernel || null; + this.code_mirror = null; + this.input_prompt_number = null; + this.tooltip_on_tab = true; + this.collapsed = false; + this.default_mode = 'python'; + IPython.Cell.apply(this, arguments); + + var that = this; + this.element.focusout( + function() { that.auto_highlight(); } + ); + }; + + + CodeCell.prototype = new IPython.Cell(); + + + CodeCell.prototype.auto_highlight = function () { + this._auto_highlight(IPython.config.cell_magic_highlight) + }; + + CodeCell.prototype.create_element = function () { + var cell = $('
    ').addClass('cell border-box-sizing code_cell vbox'); + cell.attr('tabindex','2'); + var input = $('
    ').addClass('input hbox'); + input.append($('
    ').addClass('prompt input_prompt')); + var input_area = $('
    ').addClass('input_area box-flex1'); + this.code_mirror = CodeMirror(input_area.get(0), { + indentUnit : 4, + mode: 'python', + theme: 'ipython', + readOnly: this.read_only, + extraKeys: {"Tab": "indentMore","Shift-Tab" : "indentLess",'Backspace':"delSpaceToPrevTabStop"}, + onKeyEvent: $.proxy(this.handle_codemirror_keyevent,this) + }); + input.append(input_area); + var output = $('
    '); + cell.append(input).append(output); + this.element = cell; + this.output_area = new IPython.OutputArea(output, true); + + // construct a completer only if class exist + // otherwise no print view + if (IPython.Completer !== undefined) + { + this.completer = new IPython.Completer(this); + } + }; + + CodeCell.prototype.handle_codemirror_keyevent = function (editor, event) { + // This method gets called in CodeMirror's onKeyDown/onKeyPress + // handlers and is used to provide custom key handling. Its return + // value is used to determine if CodeMirror should ignore the event: + // true = ignore, false = don't ignore. + + if (this.read_only){ + return false; + } + + var that = this; + // whatever key is pressed, first, cancel the tooltip request before + // they are sent, and remove tooltip if any, except for tab again + if (event.type === 'keydown' && event.which != key.TAB ) { + IPython.tooltip.remove_and_cancel_tooltip(); + }; + + var cur = editor.getCursor(); + if (event.keyCode === key.ENTER){ + this.auto_highlight(); + } + + if (event.keyCode === key.ENTER && (event.shiftKey || event.ctrlKey)) { + // Always ignore shift-enter in CodeMirror as we handle it. + return true; + } else if (event.which === 40 && event.type === 'keypress' && IPython.tooltip.time_before_tooltip >= 0) { + // triger on keypress (!) otherwise inconsistent event.which depending on plateform + // browser and keyboard layout ! + // Pressing '(' , request tooltip, don't forget to reappend it + IPython.tooltip.pending(that); + } else if (event.which === key.UPARROW && event.type === 'keydown') { + // If we are not at the top, let CM handle the up arrow and + // prevent the global keydown handler from handling it. + if (!that.at_top()) { + event.stop(); + return false; + } else { + return true; + }; + } else if (event.which === key.ESC) { + IPython.tooltip.remove_and_cancel_tooltip(true); + return true; + } else if (event.which === key.DOWNARROW && event.type === 'keydown') { + // If we are not at the bottom, let CM handle the down arrow and + // prevent the global keydown handler from handling it. + if (!that.at_bottom()) { + event.stop(); + return false; + } else { + return true; + }; + } else if (event.keyCode === key.TAB && event.type == 'keydown') { + // Tab completion. + //Do not trim here because of tooltip + var pre_cursor = editor.getRange({line:cur.line,ch:0},cur); + if (pre_cursor.trim() === "") { + // Don't autocomplete if the part of the line before the cursor + // is empty. In this case, let CodeMirror handle indentation. + return false; + } else if ((pre_cursor.substr(-1) === "("|| pre_cursor.substr(-1) === " ") && that.tooltip_on_tab ) { + IPython.tooltip.request(that); + // Prevent the event from bubbling up. + event.stop(); + // Prevent CodeMirror from handling the tab. + return true; + } else { + event.stop(); + this.completer.startCompletion(); + return true; + }; + } else { + // keypress/keyup also trigger on TAB press, and we don't want to + // use those to disable tab completion. + return false; + }; + return false; + }; + + + // Kernel related calls. + + CodeCell.prototype.set_kernel = function (kernel) { + this.kernel = kernel; + } + + + CodeCell.prototype.execute = function () { + this.output_area.clear_output(true, true, true); + this.set_input_prompt('*'); + this.element.addClass("running"); + var callbacks = { + 'execute_reply': $.proxy(this._handle_execute_reply, this), + 'output': $.proxy(this.output_area.handle_output, this.output_area), + 'clear_output': $.proxy(this.output_area.handle_clear_output, this.output_area), + 'set_next_input': $.proxy(this._handle_set_next_input, this) + }; + var msg_id = this.kernel.execute(this.get_text(), callbacks, {silent: false}); + }; + + + CodeCell.prototype._handle_execute_reply = function (content) { + this.set_input_prompt(content.execution_count); + this.element.removeClass("running"); + $([IPython.events]).trigger('set_dirty.Notebook', {'value': true}); + } + + CodeCell.prototype._handle_set_next_input = function (text) { + var data = {'cell': this, 'text': text} + $([IPython.events]).trigger('set_next_input.Notebook', data); + } + + // Basic cell manipulation. + + CodeCell.prototype.select = function () { + IPython.Cell.prototype.select.apply(this); + this.code_mirror.refresh(); + this.code_mirror.focus(); + this.auto_highlight(); + // We used to need an additional refresh() after the focus, but + // it appears that this has been fixed in CM. This bug would show + // up on FF when a newly loaded markdown cell was edited. + }; + + + CodeCell.prototype.select_all = function () { + var start = {line: 0, ch: 0}; + var nlines = this.code_mirror.lineCount(); + var last_line = this.code_mirror.getLine(nlines-1); + var end = {line: nlines-1, ch: last_line.length}; + this.code_mirror.setSelection(start, end); + }; + + + CodeCell.prototype.collapse = function () { + this.collapsed = true; + this.output_area.collapse(); + }; + + + CodeCell.prototype.expand = function () { + this.collapsed = false; + this.output_area.expand(); + }; + + + CodeCell.prototype.toggle_output = function () { + this.collapsed = Boolean(1 - this.collapsed); + this.output_area.toggle_output(); + }; + + + CodeCell.prototype.toggle_output_scroll = function () { + this.output_area.toggle_scroll(); + }; + + + CodeCell.prototype.set_input_prompt = function (number) { + this.input_prompt_number = number; + var ns = number || " "; + this.element.find('div.input_prompt').html('In [' + ns + ']:'); + }; + + + CodeCell.prototype.clear_input = function () { + this.code_mirror.setValue(''); + }; + + + CodeCell.prototype.get_text = function () { + return this.code_mirror.getValue(); + }; + + + CodeCell.prototype.set_text = function (code) { + return this.code_mirror.setValue(code); + }; + + + CodeCell.prototype.at_top = function () { + var cursor = this.code_mirror.getCursor(); + if (cursor.line === 0 && cursor.ch === 0) { + return true; + } else { + return false; + } + }; + + + CodeCell.prototype.at_bottom = function () { + var cursor = this.code_mirror.getCursor(); + if (cursor.line === (this.code_mirror.lineCount()-1) && cursor.ch === this.code_mirror.getLine(cursor.line).length) { + return true; + } else { + return false; + } + }; + + + CodeCell.prototype.clear_output = function (stdout, stderr, other) { + this.output_area.clear_output(stdout, stderr, other); + }; + + + // JSON serialization + + CodeCell.prototype.fromJSON = function (data) { + IPython.Cell.prototype.fromJSON.apply(this, arguments); + if (data.cell_type === 'code') { + if (data.input !== undefined) { + this.set_text(data.input); + // make this value the starting point, so that we can only undo + // to this state, instead of a blank cell + this.code_mirror.clearHistory(); + this.auto_highlight(); + } + if (data.prompt_number !== undefined) { + this.set_input_prompt(data.prompt_number); + } else { + this.set_input_prompt(); + }; + this.output_area.fromJSON(data.outputs); + if (data.collapsed !== undefined) { + if (data.collapsed) { + this.collapse(); + } else { + this.expand(); + }; + }; + }; + }; + + + CodeCell.prototype.toJSON = function () { + var data = IPython.Cell.prototype.toJSON.apply(this); + data.input = this.get_text(); + data.cell_type = 'code'; + if (this.input_prompt_number) { + data.prompt_number = this.input_prompt_number; + }; + var outputs = this.output_area.toJSON(); + data.outputs = outputs; + data.language = 'python'; + data.collapsed = this.collapsed; + return data; + }; + + + IPython.CodeCell = CodeCell; + + return IPython; +}(IPython)); diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codemirror.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codemirror.js new file mode 100644 index 000000000..98eceec17 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/codemirror.js @@ -0,0 +1,3243 @@ +// All functions that need access to the editor's state live inside +// the CodeMirror function. Below that, at the bottom of the file, +// some utilities are defined. + +// CodeMirror is the only global var we claim +var CodeMirror = (function() { + // This is the function that produces an editor instance. Its + // closure is used to store the editor state. + function CodeMirror(place, givenOptions) { + // Determine effective options based on given values and defaults. + var options = {}, defaults = CodeMirror.defaults; + for (var opt in defaults) + if (defaults.hasOwnProperty(opt)) + options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; + + // The element in which the editor lives. + var wrapper = document.createElement("div"); + wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : ""); + // This mess creates the base DOM structure for the editor. + wrapper.innerHTML = + '
    ' + // Wraps and hides input textarea + '
    ' + + '
    ' + // The vertical scrollbar. Horizontal scrolling is handled by the scroller itself. + '
    ' + // The empty scrollbar content, used solely for managing the scrollbar thumb. + '
    ' + // This must be before the scroll area because it's float-right. + '
    ' + + '
    ' + // Set to the height of the text, causes scrolling + '
    ' + // Moved around its parent to cover visible view + '
    ' + + // Provides positioning relative to (visible) text origin + '
    ' + + // Used to measure text size + '
    ' + + '
     
    ' + // Absolutely positioned blinky cursor + '' + // Used to force a width + '
    ' + // DIVs containing the selection and the actual code + '
    '; + if (place.appendChild) place.appendChild(wrapper); else place(wrapper); + // I've never seen more elegant code in my life. + var inputDiv = wrapper.firstChild, input = inputDiv.firstChild, + scroller = wrapper.lastChild, code = scroller.firstChild, + mover = code.firstChild, gutter = mover.firstChild, gutterText = gutter.firstChild, + lineSpace = gutter.nextSibling.firstChild, measure = lineSpace.firstChild, + cursor = measure.nextSibling, widthForcer = cursor.nextSibling, + selectionDiv = widthForcer.nextSibling, lineDiv = selectionDiv.nextSibling, + scrollbar = inputDiv.nextSibling, scrollbarInner = scrollbar.firstChild; + themeChanged(); keyMapChanged(); + // Needed to hide big blue blinking cursor on Mobile Safari + if (ios) input.style.width = "0px"; + if (!webkit) scroller.draggable = true; + lineSpace.style.outline = "none"; + if (options.tabindex != null) input.tabIndex = options.tabindex; + if (options.autofocus) focusInput(); + if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; + // Needed to handle Tab key in KHTML + if (khtml) inputDiv.style.height = "1px", inputDiv.style.position = "absolute"; + + // Check for OS X >= 10.7. If so, we need to force a width on the scrollbar, and + // make it overlap the content. (But we only do this if the scrollbar doesn't already + // have a natural width. If the mouse is plugged in or the user sets the system pref + // to always show scrollbars, the scrollbar shouldn't overlap.) + if (mac_geLion) { + scrollbar.className += (overlapScrollbars() ? " cm-sb-overlap" : " cm-sb-nonoverlap"); + } else if (ie_lt8) { + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + scrollbar.className += " cm-sb-ie7"; + } + + // Check for problem with IE innerHTML not working when we have a + // P (or similar) parent node. + try { stringWidth("x"); } + catch (e) { + if (e.message.match(/runtime/i)) + e = new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)"); + throw e; + } + + // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval. + var poll = new Delayed(), highlight = new Delayed(), blinker; + + // mode holds a mode API object. doc is the tree of Line objects, + // work an array of lines that should be parsed, and history the + // undo history (instance of History constructor). + var mode, doc = new BranchChunk([new LeafChunk([new Line("")])]), work, focused; + loadMode(); + // The selection. These are always maintained to point at valid + // positions. Inverted is used to remember that the user is + // selecting bottom-to-top. + var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false}; + // Selection-related flags. shiftSelecting obviously tracks + // whether the user is holding shift. + var shiftSelecting, lastClick, lastDoubleClick, lastScrollTop = 0, lastScrollLeft = 0, draggingText, + overwrite = false, suppressEdits = false; + // Variables used by startOperation/endOperation to track what + // happened during the operation. + var updateInput, userSelChange, changes, textChanged, selectionChanged, leaveInputAlone, + gutterDirty, callbacks; + // Current visible range (may be bigger than the view window). + var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0; + // bracketHighlighted is used to remember that a bracket has been + // marked. + var bracketHighlighted; + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + var maxLine = "", updateMaxLine = false, maxLineChanged = true; + var tabCache = {}; + + // Initialize the content. + operation(function(){setValue(options.value || ""); updateInput = false;})(); + var history = new History(); + + // Register our event handlers. + connect(scroller, "mousedown", operation(onMouseDown)); + connect(scroller, "dblclick", operation(onDoubleClick)); + connect(lineSpace, "selectstart", e_preventDefault); + // Gecko browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for Gecko. + if (!gecko) connect(scroller, "contextmenu", onContextMenu); + connect(scroller, "scroll", onScroll); + connect(scrollbar, "scroll", onScroll); + connect(scrollbar, "mousedown", function() {if (focused) setTimeout(focusInput, 0);}); + connect(scroller, "mousewheel", onMouseWheel); + connect(scroller, "DOMMouseScroll", onMouseWheel); + connect(window, "resize", function() {updateDisplay(true);}); + connect(input, "keyup", operation(onKeyUp)); + connect(input, "input", fastPoll); + connect(input, "keydown", operation(onKeyDown)); + connect(input, "keypress", operation(onKeyPress)); + connect(input, "focus", onFocus); + connect(input, "blur", onBlur); + + if (options.dragDrop) { + connect(scroller, "dragstart", onDragStart); + function drag_(e) { + if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return; + e_stop(e); + } + connect(scroller, "dragenter", drag_); + connect(scroller, "dragover", drag_); + connect(scroller, "drop", operation(onDrop)); + } + connect(scroller, "paste", function(){focusInput(); fastPoll();}); + connect(input, "paste", fastPoll); + connect(input, "cut", operation(function(){ + if (!options.readOnly) replaceSelection(""); + })); + + // Needed to handle Tab key in KHTML + if (khtml) connect(code, "mouseup", function() { + if (document.activeElement == input) input.blur(); + focusInput(); + }); + + // IE throws unspecified error in certain cases, when + // trying to access activeElement before onload + var hasFocus; try { hasFocus = (document.activeElement == input); } catch(e) { } + if (hasFocus || options.autofocus) setTimeout(onFocus, 20); + else onBlur(); + + function isLine(l) {return l >= 0 && l < doc.size;} + // The instance object that we'll return. Mostly calls out to + // local functions in the CodeMirror function. Some do some extra + // range checking and/or clipping. operation is used to wrap the + // call so that changes it makes are tracked, and the display is + // updated afterwards. + var instance = wrapper.CodeMirror = { + getValue: getValue, + setValue: operation(setValue), + getSelection: getSelection, + replaceSelection: operation(replaceSelection), + focus: function(){window.focus(); focusInput(); onFocus(); fastPoll();}, + setOption: function(option, value) { + var oldVal = options[option]; + options[option] = value; + if (option == "mode" || option == "indentUnit") loadMode(); + else if (option == "readOnly" && value == "nocursor") {onBlur(); input.blur();} + else if (option == "readOnly" && !value) {resetInput(true);} + else if (option == "theme") themeChanged(); + else if (option == "lineWrapping" && oldVal != value) operation(wrappingChanged)(); + else if (option == "tabSize") updateDisplay(true); + else if (option == "keyMap") keyMapChanged(); + if (option == "lineNumbers" || option == "gutter" || option == "firstLineNumber" || option == "theme") { + gutterChanged(); + updateDisplay(true); + } + }, + getOption: function(option) {return options[option];}, + undo: operation(undo), + redo: operation(redo), + indentLine: operation(function(n, dir) { + if (typeof dir != "string") { + if (dir == null) dir = options.smartIndent ? "smart" : "prev"; + else dir = dir ? "add" : "subtract"; + } + if (isLine(n)) indentLine(n, dir); + }), + indentSelection: operation(indentSelected), + historySize: function() {return {undo: history.done.length, redo: history.undone.length};}, + clearHistory: function() {history = new History();}, + setHistory: function(histData) { + history = new History(); + history.done = histData.done; + history.undone = histData.undone; + }, + getHistory: function() { + history.time = 0; + return {done: history.done.concat([]), undone: history.undone.concat([])}; + }, + matchBrackets: operation(function(){matchBrackets(true);}), + getTokenAt: operation(function(pos) { + pos = clipPos(pos); + return getLine(pos.line).getTokenAt(mode, getStateBefore(pos.line), pos.ch); + }), + getStateAfter: function(line) { + line = clipLine(line == null ? doc.size - 1: line); + return getStateBefore(line + 1); + }, + cursorCoords: function(start, mode) { + if (start == null) start = sel.inverted; + return this.charCoords(start ? sel.from : sel.to, mode); + }, + charCoords: function(pos, mode) { + pos = clipPos(pos); + if (mode == "local") return localCoords(pos, false); + if (mode == "div") return localCoords(pos, true); + return pageCoords(pos); + }, + coordsChar: function(coords) { + var off = eltOffset(lineSpace); + return coordsChar(coords.x - off.left, coords.y - off.top); + }, + markText: operation(markText), + setBookmark: setBookmark, + findMarksAt: findMarksAt, + setMarker: operation(addGutterMarker), + clearMarker: operation(removeGutterMarker), + setLineClass: operation(setLineClass), + hideLine: operation(function(h) {return setLineHidden(h, true);}), + showLine: operation(function(h) {return setLineHidden(h, false);}), + onDeleteLine: function(line, f) { + if (typeof line == "number") { + if (!isLine(line)) return null; + line = getLine(line); + } + (line.handlers || (line.handlers = [])).push(f); + return line; + }, + lineInfo: lineInfo, + addWidget: function(pos, node, scroll, vert, horiz) { + pos = localCoords(clipPos(pos)); + var top = pos.yBot, left = pos.x; + node.style.position = "absolute"; + code.appendChild(node); + if (vert == "over") top = pos.y; + else if (vert == "near") { + var vspace = Math.max(scroller.offsetHeight, doc.height * textHeight()), + hspace = Math.max(code.clientWidth, lineSpace.clientWidth) - paddingLeft(); + if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight) + top = pos.y - node.offsetHeight; + if (left + node.offsetWidth > hspace) + left = hspace - node.offsetWidth; + } + node.style.top = (top + paddingTop()) + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = code.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") left = 0; + else if (horiz == "middle") left = (code.clientWidth - node.offsetWidth) / 2; + node.style.left = (left + paddingLeft()) + "px"; + } + if (scroll) + scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight); + }, + + lineCount: function() {return doc.size;}, + clipPos: clipPos, + getCursor: function(start) { + if (start == null) start = sel.inverted; + return copyPos(start ? sel.from : sel.to); + }, + somethingSelected: function() {return !posEq(sel.from, sel.to);}, + setCursor: operation(function(line, ch, user) { + if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch, user); + else setCursor(line, ch, user); + }), + setSelection: operation(function(from, to, user) { + (user ? setSelectionUser : setSelection)(clipPos(from), clipPos(to || from)); + }), + getLine: function(line) {if (isLine(line)) return getLine(line).text;}, + getLineHandle: function(line) {if (isLine(line)) return getLine(line);}, + setLine: operation(function(line, text) { + if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: getLine(line).text.length}); + }), + removeLine: operation(function(line) { + if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0})); + }), + replaceRange: operation(replaceRange), + getRange: function(from, to, lineSep) {return getRange(clipPos(from), clipPos(to), lineSep);}, + + triggerOnKeyDown: operation(onKeyDown), + execCommand: function(cmd) {return commands[cmd](instance);}, + // Stuff used by commands, probably not much use to outside code. + moveH: operation(moveH), + deleteH: operation(deleteH), + moveV: operation(moveV), + toggleOverwrite: function() { + if(overwrite){ + overwrite = false; + cursor.className = cursor.className.replace(" CodeMirror-overwrite", ""); + } else { + overwrite = true; + cursor.className += " CodeMirror-overwrite"; + } + }, + + posFromIndex: function(off) { + var lineNo = 0, ch; + doc.iter(0, doc.size, function(line) { + var sz = line.text.length + 1; + if (sz > off) { ch = off; return true; } + off -= sz; + ++lineNo; + }); + return clipPos({line: lineNo, ch: ch}); + }, + indexFromPos: function (coords) { + if (coords.line < 0 || coords.ch < 0) return 0; + var index = coords.ch; + doc.iter(0, coords.line, function (line) { + index += line.text.length + 1; + }); + return index; + }, + scrollTo: function(x, y) { + if (x != null) scroller.scrollLeft = x; + if (y != null) scrollbar.scrollTop = y; + updateDisplay([]); + }, + getScrollInfo: function() { + return {x: scroller.scrollLeft, y: scrollbar.scrollTop, + height: scrollbar.scrollHeight, width: scroller.scrollWidth}; + }, + setSize: function(width, height) { + function interpret(val) { + val = String(val); + return /^\d+$/.test(val) ? val + "px" : val; + } + if (width != null) wrapper.style.width = interpret(width); + if (height != null) scroller.style.height = interpret(height); + }, + + operation: function(f){return operation(f)();}, + compoundChange: function(f){return compoundChange(f);}, + refresh: function(){ + updateDisplay(true, null, lastScrollTop); + if (scrollbar.scrollHeight > lastScrollTop) + scrollbar.scrollTop = lastScrollTop; + }, + getInputField: function(){return input;}, + getWrapperElement: function(){return wrapper;}, + getScrollerElement: function(){return scroller;}, + getGutterElement: function(){return gutter;} + }; + + function getLine(n) { return getLineAt(doc, n); } + function updateLineHeight(line, height) { + gutterDirty = true; + var diff = height - line.height; + for (var n = line; n; n = n.parent) n.height += diff; + } + + function setValue(code) { + var top = {line: 0, ch: 0}; + updateLines(top, {line: doc.size - 1, ch: getLine(doc.size-1).text.length}, + splitLines(code), top, top); + updateInput = true; + } + function getValue(lineSep) { + var text = []; + doc.iter(0, doc.size, function(line) { text.push(line.text); }); + return text.join(lineSep || "\n"); + } + + function onScroll(e) { + if (scroller.scrollTop) { + scrollbar.scrollTop += scroller.scrollTop; + scroller.scrollTop = 0; + } + if (lastScrollTop != scrollbar.scrollTop || lastScrollLeft != scroller.scrollLeft) { + lastScrollTop = scrollbar.scrollTop; + lastScrollLeft = scroller.scrollLeft; + updateDisplay([]); + if (options.fixedGutter) gutter.style.left = scroller.scrollLeft + "px"; + if (options.onScroll) options.onScroll(instance); + } + } + + function onMouseDown(e) { + setShift(e_prop(e, "shiftKey")); + // Check whether this is a click in a widget + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == code && n != mover) return; + + // See if this is a click in the gutter + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) { + if (options.onGutterClick) + options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom, e); + return e_preventDefault(e); + } + + var start = posFromMouse(e); + + switch (e_button(e)) { + case 3: + if (gecko) onContextMenu(e); + return; + case 2: + if (start) setCursor(start.line, start.ch, true); + setTimeout(focusInput, 20); + e_preventDefault(e); + return; + } + // For button 1, if it was clicked inside the editor + // (posFromMouse returning non-null), we have to adjust the + // selection. + if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;} + + if (!focused) onFocus(); + + var now = +new Date, type = "single"; + if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { + type = "triple"; + e_preventDefault(e); + setTimeout(focusInput, 20); + selectLine(start.line); + } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { + type = "double"; + lastDoubleClick = {time: now, pos: start}; + e_preventDefault(e); + var word = findWordAt(start); + setSelectionUser(word.from, word.to); + } else { lastClick = {time: now, pos: start}; } + + var last = start, going; + if (options.dragDrop && dragAndDrop && !options.readOnly && !posEq(sel.from, sel.to) && + !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") { + // Let the drag handler handle this. + if (webkit) scroller.draggable = true; + function dragEnd(e2) { + if (webkit) scroller.draggable = false; + draggingText = false; + up(); drop(); + if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { + e_preventDefault(e2); + setCursor(start.line, start.ch, true); + focusInput(); + } + } + var up = connect(document, "mouseup", operation(dragEnd), true); + var drop = connect(scroller, "drop", operation(dragEnd), true); + draggingText = true; + // IE's approach to draggable + if (scroller.dragDrop) scroller.dragDrop(); + return; + } + e_preventDefault(e); + if (type == "single") setCursor(start.line, start.ch, true); + + var startstart = sel.from, startend = sel.to; + + function doSelect(cur) { + if (type == "single") { + setSelectionUser(start, cur); + } else if (type == "double") { + var word = findWordAt(cur); + if (posLess(cur, startstart)) setSelectionUser(word.from, startend); + else setSelectionUser(startstart, word.to); + } else if (type == "triple") { + if (posLess(cur, startstart)) setSelectionUser(startend, clipPos({line: cur.line, ch: 0})); + else setSelectionUser(startstart, clipPos({line: cur.line + 1, ch: 0})); + } + } + + function extend(e) { + var cur = posFromMouse(e, true); + if (cur && !posEq(cur, last)) { + if (!focused) onFocus(); + last = cur; + doSelect(cur); + updateInput = false; + var visible = visibleLines(); + if (cur.line >= visible.to || cur.line < visible.from) + going = setTimeout(operation(function(){extend(e);}), 150); + } + } + + function done(e) { + clearTimeout(going); + var cur = posFromMouse(e); + if (cur) doSelect(cur); + e_preventDefault(e); + focusInput(); + updateInput = true; + move(); up(); + } + var move = connect(document, "mousemove", operation(function(e) { + clearTimeout(going); + e_preventDefault(e); + if (!ie && !e_button(e)) done(e); + else extend(e); + }), true); + var up = connect(document, "mouseup", operation(done), true); + } + function onDoubleClick(e) { + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) return e_preventDefault(e); + e_preventDefault(e); + } + function onDrop(e) { + if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return; + e.preventDefault(); + var pos = posFromMouse(e, true), files = e.dataTransfer.files; + if (!pos || options.readOnly) return; + if (files && files.length && window.FileReader && window.File) { + function loadFile(file, i) { + var reader = new FileReader; + reader.onload = function() { + text[i] = reader.result; + if (++read == n) { + pos = clipPos(pos); + operation(function() { + var end = replaceRange(text.join(""), pos, pos); + setSelectionUser(pos, end); + })(); + } + }; + reader.readAsText(file); + } + var n = files.length, text = Array(n), read = 0; + for (var i = 0; i < n; ++i) loadFile(files[i], i); + } else { + // Don't do a replace if the drop happened inside of the selected text. + if (draggingText && !(posLess(pos, sel.from) || posLess(sel.to, pos))) return; + try { + var text = e.dataTransfer.getData("Text"); + if (text) { + compoundChange(function() { + var curFrom = sel.from, curTo = sel.to; + setSelectionUser(pos, pos); + if (draggingText) replaceRange("", curFrom, curTo); + replaceSelection(text); + focusInput(); + }); + } + } + catch(e){} + } + } + function onDragStart(e) { + var txt = getSelection(); + e.dataTransfer.setData("Text", txt); + + // Use dummy image instead of default browsers image. + if (gecko || chrome || opera) { + var img = document.createElement('img'); + img.scr = 'data:image/gif;base64,R0lGODdhAgACAIAAAAAAAP///ywAAAAAAgACAAACAoRRADs='; //1x1 image + e.dataTransfer.setDragImage(img, 0, 0); + } + } + + function doHandleBinding(bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) return false; + } + var prevShift = shiftSelecting; + try { + if (options.readOnly) suppressEdits = true; + if (dropShift) shiftSelecting = null; + bound(instance); + } catch(e) { + if (e != Pass) throw e; + return false; + } finally { + shiftSelecting = prevShift; + suppressEdits = false; + } + return true; + } + function handleKeyBinding(e) { + // Handle auto keymap transitions + var startMap = getKeyMap(options.keyMap), next = startMap.auto; + clearTimeout(maybeTransition); + if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { + if (getKeyMap(options.keyMap) == startMap) { + options.keyMap = (next.call ? next.call(null, instance) : next); + } + }, 50); + + var name = keyNames[e_prop(e, "keyCode")], handled = false; + if (name == null || e.altGraphKey) return false; + if (e_prop(e, "altKey")) name = "Alt-" + name; + if (e_prop(e, "ctrlKey")) name = "Ctrl-" + name; + if (e_prop(e, "metaKey")) name = "Cmd-" + name; + + var stopped = false; + function stop() { stopped = true; } + + if (e_prop(e, "shiftKey")) { + handled = lookupKey("Shift-" + name, options.extraKeys, options.keyMap, + function(b) {return doHandleBinding(b, true);}, stop) + || lookupKey(name, options.extraKeys, options.keyMap, function(b) { + if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(b); + }, stop); + } else { + handled = lookupKey(name, options.extraKeys, options.keyMap, doHandleBinding, stop); + } + if (stopped) handled = false; + if (handled) { + e_preventDefault(e); + restartBlink(); + if (ie) { e.oldKeyCode = e.keyCode; e.keyCode = 0; } + } + return handled; + } + function handleCharBinding(e, ch) { + var handled = lookupKey("'" + ch + "'", options.extraKeys, + options.keyMap, function(b) { return doHandleBinding(b, true); }); + if (handled) { + e_preventDefault(e); + restartBlink(); + } + return handled; + } + + var lastStoppedKey = null, maybeTransition; + function onKeyDown(e) { + if (!focused) onFocus(); + if (ie && e.keyCode == 27) { e.returnValue = false; } + if (pollingFast) { if (readInput()) pollingFast = false; } + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + var code = e_prop(e, "keyCode"); + // IE does strange things with escape. + setShift(code == 16 || e_prop(e, "shiftKey")); + // First give onKeyEvent option a chance to handle this. + var handled = handleKeyBinding(e); + if (opera) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && e_prop(e, mac ? "metaKey" : "ctrlKey")) + replaceSelection(""); + } + } + function onKeyPress(e) { + if (pollingFast) readInput(); + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + var keyCode = e_prop(e, "keyCode"), charCode = e_prop(e, "charCode"); + if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} + if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(e)) return; + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + if (options.electricChars && mode.electricChars && options.smartIndent && !options.readOnly) { + if (mode.electricChars.indexOf(ch) > -1) + setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 75); + } + if (handleCharBinding(e, ch)) return; + fastPoll(); + } + function onKeyUp(e) { + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + if (e_prop(e, "keyCode") == 16) shiftSelecting = null; + } + + function onFocus() { + if (options.readOnly == "nocursor") return; + if (!focused) { + if (options.onFocus) options.onFocus(instance); + focused = true; + if (scroller.className.search(/\bCodeMirror-focused\b/) == -1) + scroller.className += " CodeMirror-focused"; + if (!leaveInputAlone) resetInput(true); + } + slowPoll(); + restartBlink(); + } + function onBlur() { + if (focused) { + if (options.onBlur) options.onBlur(instance); + focused = false; + if (bracketHighlighted) + operation(function(){ + if (bracketHighlighted) { bracketHighlighted(); bracketHighlighted = null; } + })(); + scroller.className = scroller.className.replace(" CodeMirror-focused", ""); + } + clearInterval(blinker); + setTimeout(function() {if (!focused) shiftSelecting = null;}, 150); + } + + function chopDelta(delta) { + // Make sure we always scroll a little bit for any nonzero delta. + if (delta > 0.0 && delta < 1.0) return 1; + else if (delta > -1.0 && delta < 0.0) return -1; + else return Math.round(delta); + } + + function onMouseWheel(e) { + var deltaX = 0, deltaY = 0; + if (e.type == "DOMMouseScroll") { // Firefox + var delta = -e.detail * 8.0; + if (e.axis == e.HORIZONTAL_AXIS) deltaX = delta; + else if (e.axis == e.VERTICAL_AXIS) deltaY = delta; + } else if (e.wheelDeltaX !== undefined && e.wheelDeltaY !== undefined) { // WebKit + deltaX = e.wheelDeltaX / 3.0; + deltaY = e.wheelDeltaY / 3.0; + } else if (e.wheelDelta !== undefined) { // IE or Opera + deltaY = e.wheelDelta / 3.0; + } + + var scrolled = false; + deltaX = chopDelta(deltaX); + deltaY = chopDelta(deltaY); + if ((deltaX > 0 && scroller.scrollLeft > 0) || + (deltaX < 0 && scroller.scrollLeft + scroller.clientWidth < scroller.scrollWidth)) { + scroller.scrollLeft -= deltaX; + scrolled = true; + } + if ((deltaY > 0 && scrollbar.scrollTop > 0) || + (deltaY < 0 && scrollbar.scrollTop + scrollbar.clientHeight < scrollbar.scrollHeight)) { + scrollbar.scrollTop -= deltaY; + scrolled = true; + } + if (scrolled) e_stop(e); + } + + // Replace the range from from to to by the strings in newText. + // Afterwards, set the selection to selFrom, selTo. + function updateLines(from, to, newText, selFrom, selTo) { + if (suppressEdits) return; + if (history) { + var old = []; + doc.iter(from.line, to.line + 1, function(line) { old.push(line.text); }); + history.addChange(from.line, newText.length, old); + while (history.done.length > options.undoDepth) history.done.shift(); + } + updateLinesNoUndo(from, to, newText, selFrom, selTo); + } + function unredoHelper(from, to) { + if (!from.length) return; + var set = from.pop(), out = []; + for (var i = set.length - 1; i >= 0; i -= 1) { + var change = set[i]; + var replaced = [], end = change.start + change.added; + doc.iter(change.start, end, function(line) { replaced.push(line.text); }); + out.push({start: change.start, added: change.old.length, old: replaced}); + var pos = {line: change.start + change.old.length - 1, + ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])}; + updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: getLine(end-1).text.length}, change.old, pos, pos); + } + updateInput = true; + to.push(out); + } + function undo() {unredoHelper(history.done, history.undone);} + function redo() {unredoHelper(history.undone, history.done);} + + function updateLinesNoUndo(from, to, newText, selFrom, selTo) { + if (suppressEdits) return; + var recomputeMaxLength = false, maxLineLength = maxLine.length; + if (!options.lineWrapping) + doc.iter(from.line, to.line + 1, function(line) { + if (!line.hidden && line.text.length == maxLineLength) {recomputeMaxLength = true; return true;} + }); + if (from.line != to.line || newText.length > 1) gutterDirty = true; + + var nlines = to.line - from.line, firstLine = getLine(from.line), lastLine = getLine(to.line); + // First adjust the line structure, taking some care to leave highlighting intact. + if (from.ch == 0 && to.ch == 0 && newText[newText.length - 1] == "") { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = [], prevLine = null; + if (from.line) { + prevLine = getLine(from.line - 1); + prevLine.fixMarkEnds(lastLine); + } else lastLine.fixMarkStarts(); + for (var i = 0, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], prevLine)); + if (nlines) doc.remove(from.line, nlines, callbacks); + if (added.length) doc.insert(from.line, added); + } else if (firstLine == lastLine) { + if (newText.length == 1) + firstLine.replace(from.ch, to.ch, newText[0]); + else { + lastLine = firstLine.split(to.ch, newText[newText.length-1]); + firstLine.replace(from.ch, null, newText[0]); + firstLine.fixMarkEnds(lastLine); + var added = []; + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + added.push(lastLine); + doc.insert(from.line + 1, added); + } + } else if (newText.length == 1) { + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, ""); + firstLine.append(lastLine); + doc.remove(from.line + 1, nlines, callbacks); + } else { + var added = []; + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, newText[newText.length-1]); + firstLine.fixMarkEnds(lastLine); + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + if (nlines > 1) doc.remove(from.line + 1, nlines - 1, callbacks); + doc.insert(from.line + 1, added); + } + if (options.lineWrapping) { + var perLine = Math.max(5, scroller.clientWidth / charWidth() - 3); + doc.iter(from.line, from.line + newText.length, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != line.height) updateLineHeight(line, guess); + }); + } else { + doc.iter(from.line, from.line + newText.length, function(line) { + var l = line.text; + if (!line.hidden && l.length > maxLineLength) { + maxLine = l; maxLineLength = l.length; maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) updateMaxLine = true; + } + + // Add these lines to the work array, so that they will be + // highlighted. Adjust work lines if lines were added/removed. + var newWork = [], lendiff = newText.length - nlines - 1; + for (var i = 0, l = work.length; i < l; ++i) { + var task = work[i]; + if (task < from.line) newWork.push(task); + else if (task > to.line) newWork.push(task + lendiff); + } + var hlEnd = from.line + Math.min(newText.length, 500); + highlightLines(from.line, hlEnd); + newWork.push(hlEnd); + work = newWork; + startWorker(100); + // Remember that these lines changed, for updating the display + changes.push({from: from.line, to: to.line + 1, diff: lendiff}); + var changeObj = {from: from, to: to, text: newText}; + if (textChanged) { + for (var cur = textChanged; cur.next; cur = cur.next) {} + cur.next = changeObj; + } else textChanged = changeObj; + + // Update the selection + function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;} + setSelection(clipPos(selFrom), clipPos(selTo), + updateLine(sel.from.line), updateLine(sel.to.line)); + } + + function needsScrollbar() { + var realHeight = doc.height * textHeight() + 2 * paddingTop(); + return realHeight - 1 > scroller.offsetHeight ? realHeight : false; + } + + function updateVerticalScroll(scrollTop) { + var scrollHeight = needsScrollbar(); + scrollbar.style.display = scrollHeight ? "block" : "none"; + if (scrollHeight) { + scrollbarInner.style.height = scrollHeight + "px"; + scrollbar.style.height = scroller.offsetHeight + "px"; + if (scrollTop != null) scrollbar.scrollTop = scrollTop; + } + // Position the mover div to align with the current virtual scroll position + mover.style.top = (displayOffset * textHeight() - scrollbar.scrollTop) + "px"; + } + + // On Mac OS X Lion and up, detect whether the mouse is plugged in by measuring + // the width of a div with a scrollbar in it. If the width is <= 1, then + // the mouse isn't plugged in and scrollbars should overlap the content. + function overlapScrollbars() { + var tmpSb = document.createElement('div'), + tmpSbInner = document.createElement('div'); + tmpSb.className = "CodeMirror-scrollbar"; + tmpSb.style.cssText = "position: absolute; left: -9999px; height: 100px;"; + tmpSbInner.className = "CodeMirror-scrollbar-inner"; + tmpSbInner.style.height = "200px"; + tmpSb.appendChild(tmpSbInner); + + document.body.appendChild(tmpSb); + var result = (tmpSb.offsetWidth <= 1); + document.body.removeChild(tmpSb); + return result; + } + + function computeMaxLength() { + var maxLineLength = 0; + maxLine = ""; maxLineChanged = true; + doc.iter(0, doc.size, function(line) { + var l = line.text; + if (!line.hidden && l.length > maxLineLength) { + maxLineLength = l.length; maxLine = l; + } + }); + updateMaxLine = false; + } + + function replaceRange(code, from, to) { + from = clipPos(from); + if (!to) to = from; else to = clipPos(to); + code = splitLines(code); + function adjustPos(pos) { + if (posLess(pos, from)) return pos; + if (!posLess(to, pos)) return end; + var line = pos.line + code.length - (to.line - from.line) - 1; + var ch = pos.ch; + if (pos.line == to.line) + ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0)); + return {line: line, ch: ch}; + } + var end; + replaceRange1(code, from, to, function(end1) { + end = end1; + return {from: adjustPos(sel.from), to: adjustPos(sel.to)}; + }); + return end; + } + function replaceSelection(code, collapse) { + replaceRange1(splitLines(code), sel.from, sel.to, function(end) { + if (collapse == "end") return {from: end, to: end}; + else if (collapse == "start") return {from: sel.from, to: sel.from}; + else return {from: sel.from, to: end}; + }); + } + function replaceRange1(code, from, to, computeSel) { + var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length; + var newSel = computeSel({line: from.line + code.length - 1, ch: endch}); + updateLines(from, to, code, newSel.from, newSel.to); + } + + function getRange(from, to, lineSep) { + var l1 = from.line, l2 = to.line; + if (l1 == l2) return getLine(l1).text.slice(from.ch, to.ch); + var code = [getLine(l1).text.slice(from.ch)]; + doc.iter(l1 + 1, l2, function(line) { code.push(line.text); }); + code.push(getLine(l2).text.slice(0, to.ch)); + return code.join(lineSep || "\n"); + } + function getSelection(lineSep) { + return getRange(sel.from, sel.to, lineSep); + } + + var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll + function slowPoll() { + if (pollingFast) return; + poll.set(options.pollInterval, function() { + startOperation(); + readInput(); + if (focused) slowPoll(); + endOperation(); + }); + } + function fastPoll() { + var missed = false; + pollingFast = true; + function p() { + startOperation(); + var changed = readInput(); + if (!changed && !missed) {missed = true; poll.set(60, p);} + else {pollingFast = false; slowPoll();} + endOperation(); + } + poll.set(20, p); + } + + // Previnput is a hack to work with IME. If we reset the textarea + // on every change, that breaks IME. So we look for changes + // compared to the previous content instead. (Modern browsers have + // events that indicate IME taking place, but these are not widely + // supported or compatible enough yet to rely on.) + var prevInput = ""; + function readInput() { + if (leaveInputAlone || !focused || hasSelection(input) || options.readOnly) return false; + var text = input.value; + if (text == prevInput) return false; + shiftSelecting = null; + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput[same] == text[same]) ++same; + if (same < prevInput.length) + sel.from = {line: sel.from.line, ch: sel.from.ch - (prevInput.length - same)}; + else if (overwrite && posEq(sel.from, sel.to)) + sel.to = {line: sel.to.line, ch: Math.min(getLine(sel.to.line).text.length, sel.to.ch + (text.length - same))}; + replaceSelection(text.slice(same), "end"); + if (text.length > 1000) { input.value = prevInput = ""; } + else prevInput = text; + return true; + } + function resetInput(user) { + if (!posEq(sel.from, sel.to)) { + prevInput = ""; + input.value = getSelection(); + selectInput(input); + } else if (user) prevInput = input.value = ""; + } + + function focusInput() { + if (options.readOnly != "nocursor") input.focus(); + } + + function scrollEditorIntoView() { + var rect = cursor.getBoundingClientRect(); + // IE returns bogus coordinates when the instance sits inside of an iframe and the cursor is hidden + if (ie && rect.top == rect.bottom) return; + var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); + if (rect.top < 0 || rect.bottom > winH) scrollCursorIntoView(); + } + function scrollCursorIntoView() { + var coords = calculateCursorCoords(); + return scrollIntoView(coords.x, coords.y, coords.x, coords.yBot); + } + function calculateCursorCoords() { + var cursor = localCoords(sel.inverted ? sel.from : sel.to); + var x = options.lineWrapping ? Math.min(cursor.x, lineSpace.offsetWidth) : cursor.x; + return {x: x, y: cursor.y, yBot: cursor.yBot}; + } + function scrollIntoView(x1, y1, x2, y2) { + var scrollPos = calculateScrollPos(x1, y1, x2, y2), scrolled = false; + if (scrollPos.scrollLeft != null) {scroller.scrollLeft = scrollPos.scrollLeft; scrolled = true;} + if (scrollPos.scrollTop != null) {scrollbar.scrollTop = scrollPos.scrollTop; scrolled = true;} + if (scrolled && options.onScroll) options.onScroll(instance); + } + function calculateScrollPos(x1, y1, x2, y2) { + var pl = paddingLeft(), pt = paddingTop(); + y1 += pt; y2 += pt; x1 += pl; x2 += pl; + var screen = scroller.clientHeight, screentop = scrollbar.scrollTop, result = {}; + var docBottom = scroller.scrollHeight; + var atTop = y1 < pt + 10, atBottom = y2 + pt > docBottom - 10;; + if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1); + else if (y2 > screentop + screen) result.scrollTop = (atBottom ? docBottom : y2) - screen; + + var screenw = scroller.clientWidth, screenleft = scroller.scrollLeft; + var gutterw = options.fixedGutter ? gutter.clientWidth : 0; + var atLeft = x1 < gutterw + pl + 10; + if (x1 < screenleft + gutterw || atLeft) { + if (atLeft) x1 = 0; + result.scrollLeft = Math.max(0, x1 - 10 - gutterw); + } else if (x2 > screenw + screenleft - 3) { + result.scrollLeft = x2 + 10 - screenw; + } + return result; + } + + function visibleLines(scrollTop) { + var lh = textHeight(), top = (scrollTop != null ? scrollTop : scrollbar.scrollTop) - paddingTop(); + var fromHeight = Math.max(0, Math.floor(top / lh)); + var toHeight = Math.ceil((top + scroller.clientHeight) / lh); + return {from: lineAtHeight(doc, fromHeight), + to: lineAtHeight(doc, toHeight)}; + } + // Uses a set of changes plus the current scroll position to + // determine which DOM updates have to be made, and makes the + // updates. + function updateDisplay(changes, suppressCallback, scrollTop) { + if (!scroller.clientWidth) { + showingFrom = showingTo = displayOffset = 0; + return; + } + // Compute the new visible window + // If scrollTop is specified, use that to determine which lines + // to render instead of the current scrollbar position. + var visible = visibleLines(scrollTop); + // Bail out if the visible area is already rendered and nothing changed. + if (changes !== true && changes.length == 0 && visible.from > showingFrom && visible.to < showingTo) { + updateVerticalScroll(scrollTop); + return; + } + var from = Math.max(visible.from - 100, 0), to = Math.min(doc.size, visible.to + 100); + if (showingFrom < from && from - showingFrom < 20) from = showingFrom; + if (showingTo > to && showingTo - to < 20) to = Math.min(doc.size, showingTo); + + // Create a range of theoretically intact lines, and punch holes + // in that using the change info. + var intact = changes === true ? [] : + computeIntact([{from: showingFrom, to: showingTo, domStart: 0}], changes); + // Clip off the parts that won't be visible + var intactLines = 0; + for (var i = 0; i < intact.length; ++i) { + var range = intact[i]; + if (range.from < from) {range.domStart += (from - range.from); range.from = from;} + if (range.to > to) range.to = to; + if (range.from >= range.to) intact.splice(i--, 1); + else intactLines += range.to - range.from; + } + if (intactLines == to - from && from == showingFrom && to == showingTo) { + updateVerticalScroll(scrollTop); + return; + } + intact.sort(function(a, b) {return a.domStart - b.domStart;}); + + var th = textHeight(), gutterDisplay = gutter.style.display; + lineDiv.style.display = "none"; + patchDisplay(from, to, intact); + lineDiv.style.display = gutter.style.display = ""; + + var different = from != showingFrom || to != showingTo || lastSizeC != scroller.clientHeight + th; + // This is just a bogus formula that detects when the editor is + // resized or the font size changes. + if (different) lastSizeC = scroller.clientHeight + th; + showingFrom = from; showingTo = to; + displayOffset = heightAtLine(doc, from); + + // Since this is all rather error prone, it is honoured with the + // only assertion in the whole file. + if (lineDiv.childNodes.length != showingTo - showingFrom) + throw new Error("BAD PATCH! " + JSON.stringify(intact) + " size=" + (showingTo - showingFrom) + + " nodes=" + lineDiv.childNodes.length); + + function checkHeights() { + var curNode = lineDiv.firstChild, heightChanged = false; + doc.iter(showingFrom, showingTo, function(line) { + if (!line.hidden) { + var height = Math.round(curNode.offsetHeight / th) || 1; + if (line.height != height) { + updateLineHeight(line, height); + gutterDirty = heightChanged = true; + } + } + curNode = curNode.nextSibling; + }); + return heightChanged; + } + + if (options.lineWrapping) { + checkHeights(); + var scrollHeight = needsScrollbar(); + var shouldHaveScrollbar = scrollHeight ? "block" : "none"; + if (scrollbar.style.display != shouldHaveScrollbar) { + scrollbar.style.display = shouldHaveScrollbar; + if (scrollHeight) scrollbarInner.style.height = scrollHeight + "px"; + checkHeights(); + } + } + + gutter.style.display = gutterDisplay; + if (different || gutterDirty) { + // If the gutter grew in size, re-check heights. If those changed, re-draw gutter. + updateGutter() && options.lineWrapping && checkHeights() && updateGutter(); + } + updateVerticalScroll(scrollTop); + updateSelection(); + if (!suppressCallback && options.onUpdate) options.onUpdate(instance); + return true; + } + + function computeIntact(intact, changes) { + for (var i = 0, l = changes.length || 0; i < l; ++i) { + var change = changes[i], intact2 = [], diff = change.diff || 0; + for (var j = 0, l2 = intact.length; j < l2; ++j) { + var range = intact[j]; + if (change.to <= range.from && change.diff) + intact2.push({from: range.from + diff, to: range.to + diff, + domStart: range.domStart}); + else if (change.to <= range.from || change.from >= range.to) + intact2.push(range); + else { + if (change.from > range.from) + intact2.push({from: range.from, to: change.from, domStart: range.domStart}); + if (change.to < range.to) + intact2.push({from: change.to + diff, to: range.to + diff, + domStart: range.domStart + (change.to - range.from)}); + } + } + intact = intact2; + } + return intact; + } + + function patchDisplay(from, to, intact) { + // The first pass removes the DOM nodes that aren't intact. + if (!intact.length) lineDiv.innerHTML = ""; + else { + function killNode(node) { + var tmp = node.nextSibling; + node.parentNode.removeChild(node); + return tmp; + } + var domPos = 0, curNode = lineDiv.firstChild, n; + for (var i = 0; i < intact.length; ++i) { + var cur = intact[i]; + while (cur.domStart > domPos) {curNode = killNode(curNode); domPos++;} + for (var j = 0, e = cur.to - cur.from; j < e; ++j) {curNode = curNode.nextSibling; domPos++;} + } + while (curNode) curNode = killNode(curNode); + } + // This pass fills in the lines that actually changed. + var nextIntact = intact.shift(), curNode = lineDiv.firstChild, j = from; + var scratch = document.createElement("div"); + doc.iter(from, to, function(line) { + if (nextIntact && nextIntact.to == j) nextIntact = intact.shift(); + if (!nextIntact || nextIntact.from > j) { + if (line.hidden) var html = scratch.innerHTML = "
    ";
    +          else {
    +            var html = ''
    +              + line.getHTML(makeTab) + '
    '; + // Kludge to make sure the styled element lies behind the selection (by z-index) + if (line.bgClassName) + html = '
     
    ' + html + "
    "; + } + scratch.innerHTML = html; + lineDiv.insertBefore(scratch.firstChild, curNode); + } else { + curNode = curNode.nextSibling; + } + ++j; + }); + } + + function updateGutter() { + if (!options.gutter && !options.lineNumbers) return; + var hText = mover.offsetHeight, hEditor = scroller.clientHeight; + gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px"; + var html = [], i = showingFrom, normalNode; + doc.iter(showingFrom, Math.max(showingTo, showingFrom + 1), function(line) { + if (line.hidden) { + html.push("
    ");
    +        } else {
    +          var marker = line.gutterMarker;
    +          var text = options.lineNumbers ? options.lineNumberFormatter(i + options.firstLineNumber) : null;
    +          if (marker && marker.text)
    +            text = marker.text.replace("%N%", text != null ? text : "");
    +          else if (text == null)
    +            text = "\u00a0";
    +          html.push((marker && marker.style ? '
    ' : "
    "), text);
    +          for (var j = 1; j < line.height; ++j) html.push("
     "); + html.push("
    "); + if (!marker) normalNode = i; + } + ++i; + }); + gutter.style.display = "none"; + gutterText.innerHTML = html.join(""); + // Make sure scrolling doesn't cause number gutter size to pop + if (normalNode != null && options.lineNumbers) { + var node = gutterText.childNodes[normalNode - showingFrom]; + var minwidth = String(doc.size).length, val = eltText(node.firstChild), pad = ""; + while (val.length + pad.length < minwidth) pad += "\u00a0"; + if (pad) node.insertBefore(document.createTextNode(pad), node.firstChild); + } + gutter.style.display = ""; + var resized = Math.abs((parseInt(lineSpace.style.marginLeft) || 0) - gutter.offsetWidth) > 2; + lineSpace.style.marginLeft = gutter.offsetWidth + "px"; + gutterDirty = false; + return resized; + } + function updateSelection() { + var collapsed = posEq(sel.from, sel.to); + var fromPos = localCoords(sel.from, true); + var toPos = collapsed ? fromPos : localCoords(sel.to, true); + var headPos = sel.inverted ? fromPos : toPos, th = textHeight(); + var wrapOff = eltOffset(wrapper), lineOff = eltOffset(lineDiv); + inputDiv.style.top = Math.max(0, Math.min(scroller.offsetHeight, headPos.y + lineOff.top - wrapOff.top)) + "px"; + inputDiv.style.left = Math.max(0, Math.min(scroller.offsetWidth, headPos.x + lineOff.left - wrapOff.left)) + "px"; + if (collapsed) { + cursor.style.top = headPos.y + "px"; + cursor.style.left = (options.lineWrapping ? Math.min(headPos.x, lineSpace.offsetWidth) : headPos.x) + "px"; + cursor.style.display = ""; + selectionDiv.style.display = "none"; + } else { + var sameLine = fromPos.y == toPos.y, html = ""; + var clientWidth = lineSpace.clientWidth || lineSpace.offsetWidth; + var clientHeight = lineSpace.clientHeight || lineSpace.offsetHeight; + function add(left, top, right, height) { + var rstyle = quirksMode ? "width: " + (!right ? clientWidth : clientWidth - right - left) + "px" + : "right: " + right + "px"; + html += '
    '; + } + if (sel.from.ch && fromPos.y >= 0) { + var right = sameLine ? clientWidth - toPos.x : 0; + add(fromPos.x, fromPos.y, right, th); + } + var middleStart = Math.max(0, fromPos.y + (sel.from.ch ? th : 0)); + var middleHeight = Math.min(toPos.y, clientHeight) - middleStart; + if (middleHeight > 0.2 * th) + add(0, middleStart, 0, middleHeight); + if ((!sameLine || !sel.from.ch) && toPos.y < clientHeight - .5 * th) + add(0, toPos.y, clientWidth - toPos.x, th); + selectionDiv.innerHTML = html; + cursor.style.display = "none"; + selectionDiv.style.display = ""; + } + } + + function setShift(val) { + if (val) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from); + else shiftSelecting = null; + } + function setSelectionUser(from, to) { + var sh = shiftSelecting && clipPos(shiftSelecting); + if (sh) { + if (posLess(sh, from)) from = sh; + else if (posLess(to, sh)) to = sh; + } + setSelection(from, to); + userSelChange = true; + } + // Update the selection. Last two args are only used by + // updateLines, since they have to be expressed in the line + // numbers before the update. + function setSelection(from, to, oldFrom, oldTo) { + goalColumn = null; + if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;} + if (posEq(sel.from, from) && posEq(sel.to, to)) return; + if (posLess(to, from)) {var tmp = to; to = from; from = tmp;} + + // Skip over hidden lines. + if (from.line != oldFrom) { + var from1 = skipHidden(from, oldFrom, sel.from.ch); + // If there is no non-hidden line left, force visibility on current line + if (!from1) setLineHidden(from.line, false); + else from = from1; + } + if (to.line != oldTo) to = skipHidden(to, oldTo, sel.to.ch); + + if (posEq(from, to)) sel.inverted = false; + else if (posEq(from, sel.to)) sel.inverted = false; + else if (posEq(to, sel.from)) sel.inverted = true; + + if (options.autoClearEmptyLines && posEq(sel.from, sel.to)) { + var head = sel.inverted ? from : to; + if (head.line != sel.from.line && sel.from.line < doc.size) { + var oldLine = getLine(sel.from.line); + if (/^\s+$/.test(oldLine.text)) + setTimeout(operation(function() { + if (oldLine.parent && /^\s+$/.test(oldLine.text)) { + var no = lineNo(oldLine); + replaceRange("", {line: no, ch: 0}, {line: no, ch: oldLine.text.length}); + } + }, 10)); + } + } + + sel.from = from; sel.to = to; + selectionChanged = true; + } + function skipHidden(pos, oldLine, oldCh) { + function getNonHidden(dir) { + var lNo = pos.line + dir, end = dir == 1 ? doc.size : -1; + while (lNo != end) { + var line = getLine(lNo); + if (!line.hidden) { + var ch = pos.ch; + if (toEnd || ch > oldCh || ch > line.text.length) ch = line.text.length; + return {line: lNo, ch: ch}; + } + lNo += dir; + } + } + var line = getLine(pos.line); + var toEnd = pos.ch == line.text.length && pos.ch != oldCh; + if (!line.hidden) return pos; + if (pos.line >= oldLine) return getNonHidden(1) || getNonHidden(-1); + else return getNonHidden(-1) || getNonHidden(1); + } + function setCursor(line, ch, user) { + var pos = clipPos({line: line, ch: ch || 0}); + (user ? setSelectionUser : setSelection)(pos, pos); + } + + function clipLine(n) {return Math.max(0, Math.min(n, doc.size-1));} + function clipPos(pos) { + if (pos.line < 0) return {line: 0, ch: 0}; + if (pos.line >= doc.size) return {line: doc.size-1, ch: getLine(doc.size-1).text.length}; + var ch = pos.ch, linelen = getLine(pos.line).text.length; + if (ch == null || ch > linelen) return {line: pos.line, ch: linelen}; + else if (ch < 0) return {line: pos.line, ch: 0}; + else return pos; + } + + function findPosH(dir, unit) { + var end = sel.inverted ? sel.from : sel.to, line = end.line, ch = end.ch; + var lineObj = getLine(line); + function findNextLine() { + for (var l = line + dir, e = dir < 0 ? -1 : doc.size; l != e; l += dir) { + var lo = getLine(l); + if (!lo.hidden) { line = l; lineObj = lo; return true; } + } + } + function moveOnce(boundToLine) { + if (ch == (dir < 0 ? 0 : lineObj.text.length)) { + if (!boundToLine && findNextLine()) ch = dir < 0 ? lineObj.text.length : 0; + else return false; + } else ch += dir; + return true; + } + if (unit == "char") moveOnce(); + else if (unit == "column") moveOnce(true); + else if (unit == "word") { + var sawWord = false; + for (;;) { + if (dir < 0) if (!moveOnce()) break; + if (isWordChar(lineObj.text.charAt(ch))) sawWord = true; + else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;} + if (dir > 0) if (!moveOnce()) break; + } + } + return {line: line, ch: ch}; + } + function moveH(dir, unit) { + var pos = dir < 0 ? sel.from : sel.to; + if (shiftSelecting || posEq(sel.from, sel.to)) pos = findPosH(dir, unit); + setCursor(pos.line, pos.ch, true); + } + function deleteH(dir, unit) { + if (!posEq(sel.from, sel.to)) replaceRange("", sel.from, sel.to); + else if (dir < 0) replaceRange("", findPosH(dir, unit), sel.to); + else replaceRange("", sel.from, findPosH(dir, unit)); + userSelChange = true; + } + var goalColumn = null; + function moveV(dir, unit) { + var dist = 0, pos = localCoords(sel.inverted ? sel.from : sel.to, true); + if (goalColumn != null) pos.x = goalColumn; + if (unit == "page") dist = Math.min(scroller.clientHeight, window.innerHeight || document.documentElement.clientHeight); + else if (unit == "line") dist = textHeight(); + var target = coordsChar(pos.x, pos.y + dist * dir + 2); + if (unit == "page") scrollbar.scrollTop += localCoords(target, true).y - pos.y; + setCursor(target.line, target.ch, true); + goalColumn = pos.x; + } + + function findWordAt(pos) { + var line = getLine(pos.line).text; + var start = pos.ch, end = pos.ch; + var check = isWordChar(line.charAt(start < line.length ? start : start - 1)) ? + isWordChar : function(ch) {return !isWordChar(ch);}; + while (start > 0 && check(line.charAt(start - 1))) --start; + while (end < line.length && check(line.charAt(end))) ++end; + return {from: {line: pos.line, ch: start}, to: {line: pos.line, ch: end}}; + } + function selectLine(line) { + setSelectionUser({line: line, ch: 0}, clipPos({line: line + 1, ch: 0})); + } + function indentSelected(mode) { + if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode); + var e = sel.to.line - (sel.to.ch ? 0 : 1); + for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode); + } + + function indentLine(n, how) { + if (!how) how = "add"; + if (how == "smart") { + if (!mode.indent) how = "prev"; + else var state = getStateBefore(n); + } + + var line = getLine(n), curSpace = line.indentation(options.tabSize), + curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (how == "smart") { + indentation = mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass) how = "prev"; + } + if (how == "prev") { + if (n) indentation = getLine(n-1).indentation(options.tabSize); + else indentation = 0; + } + else if (how == "add") indentation = curSpace + options.indentUnit; + else if (how == "subtract") indentation = curSpace - options.indentUnit; + indentation = Math.max(0, indentation); + var diff = indentation - curSpace; + + var indentString = "", pos = 0; + if (options.indentWithTabs) + for (var i = Math.floor(indentation / options.tabSize); i; --i) {pos += options.tabSize; indentString += "\t";} + while (pos < indentation) {++pos; indentString += " ";} + + replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length}); + } + + function loadMode() { + mode = CodeMirror.getMode(options, options.mode); + doc.iter(0, doc.size, function(line) { line.stateAfter = null; }); + work = [0]; + startWorker(); + } + function gutterChanged() { + var visible = options.gutter || options.lineNumbers; + gutter.style.display = visible ? "" : "none"; + if (visible) gutterDirty = true; + else lineDiv.parentNode.style.marginLeft = 0; + } + function wrappingChanged(from, to) { + if (options.lineWrapping) { + wrapper.className += " CodeMirror-wrap"; + var perLine = scroller.clientWidth / charWidth() - 3; + doc.iter(0, doc.size, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != 1) updateLineHeight(line, guess); + }); + lineSpace.style.width = code.style.width = ""; + widthForcer.style.left = ""; + } else { + wrapper.className = wrapper.className.replace(" CodeMirror-wrap", ""); + maxLine = ""; maxLineChanged = true; + doc.iter(0, doc.size, function(line) { + if (line.height != 1 && !line.hidden) updateLineHeight(line, 1); + if (line.text.length > maxLine.length) maxLine = line.text; + }); + } + changes.push({from: 0, to: doc.size}); + } + function makeTab(col) { + var w = options.tabSize - col % options.tabSize, cached = tabCache[w]; + if (cached) return cached; + for (var str = '', i = 0; i < w; ++i) str += " "; + return (tabCache[w] = {html: str + "", width: w}); + } + function themeChanged() { + scroller.className = scroller.className.replace(/\s*cm-s-\S+/g, "") + + options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + } + function keyMapChanged() { + var style = keyMap[options.keyMap].style; + wrapper.className = wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + + (style ? " cm-keymap-" + style : ""); + } + + function TextMarker() { this.set = []; } + TextMarker.prototype.clear = operation(function() { + var min = Infinity, max = -Infinity; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + if (!mk || !line.parent) continue; + var lineN = lineNo(line); + min = Math.min(min, lineN); max = Math.max(max, lineN); + for (var j = 0; j < mk.length; ++j) + if (mk[j].marker == this) mk.splice(j--, 1); + } + if (min != Infinity) + changes.push({from: min, to: max + 1}); + }); + TextMarker.prototype.find = function() { + var from, to; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + for (var j = 0; j < mk.length; ++j) { + var mark = mk[j]; + if (mark.marker == this) { + if (mark.from != null || mark.to != null) { + var found = lineNo(line); + if (found != null) { + if (mark.from != null) from = {line: found, ch: mark.from}; + if (mark.to != null) to = {line: found, ch: mark.to}; + } + } + } + } + } + return {from: from, to: to}; + }; + + function markText(from, to, className) { + from = clipPos(from); to = clipPos(to); + var tm = new TextMarker(); + if (!posLess(from, to)) return tm; + function add(line, from, to, className) { + getLine(line).addMark(new MarkedText(from, to, className, tm)); + } + if (from.line == to.line) add(from.line, from.ch, to.ch, className); + else { + add(from.line, from.ch, null, className); + for (var i = from.line + 1, e = to.line; i < e; ++i) + add(i, null, null, className); + add(to.line, null, to.ch, className); + } + changes.push({from: from.line, to: to.line + 1}); + return tm; + } + + function setBookmark(pos) { + pos = clipPos(pos); + var bm = new Bookmark(pos.ch); + getLine(pos.line).addMark(bm); + return bm; + } + + function findMarksAt(pos) { + pos = clipPos(pos); + var markers = [], marked = getLine(pos.line).marked; + if (!marked) return markers; + for (var i = 0, e = marked.length; i < e; ++i) { + var m = marked[i]; + if ((m.from == null || m.from <= pos.ch) && + (m.to == null || m.to >= pos.ch)) + markers.push(m.marker || m); + } + return markers; + } + + function addGutterMarker(line, text, className) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = {text: text, style: className}; + gutterDirty = true; + return line; + } + function removeGutterMarker(line) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = null; + gutterDirty = true; + } + + function changeLine(handle, op) { + var no = handle, line = handle; + if (typeof handle == "number") line = getLine(clipLine(handle)); + else no = lineNo(handle); + if (no == null) return null; + if (op(line, no)) changes.push({from: no, to: no + 1}); + else return null; + return line; + } + function setLineClass(handle, className, bgClassName) { + return changeLine(handle, function(line) { + if (line.className != className || line.bgClassName != bgClassName) { + line.className = className; + line.bgClassName = bgClassName; + return true; + } + }); + } + function setLineHidden(handle, hidden) { + return changeLine(handle, function(line, no) { + if (line.hidden != hidden) { + line.hidden = hidden; + if (!options.lineWrapping) { + var l = line.text; + if (hidden && l.length == maxLine.length) { + updateMaxLine = true; + } else if (!hidden && l.length > maxLine.length) { + maxLine = l; updateMaxLine = false; + } + } + updateLineHeight(line, hidden ? 0 : 1); + var fline = sel.from.line, tline = sel.to.line; + if (hidden && (fline == no || tline == no)) { + var from = fline == no ? skipHidden({line: fline, ch: 0}, fline, 0) : sel.from; + var to = tline == no ? skipHidden({line: tline, ch: 0}, tline, 0) : sel.to; + // Can't hide the last visible line, we'd have no place to put the cursor + if (!to) return; + setSelection(from, to); + } + return (gutterDirty = true); + } + }); + } + + function lineInfo(line) { + if (typeof line == "number") { + if (!isLine(line)) return null; + var n = line; + line = getLine(line); + if (!line) return null; + } else { + var n = lineNo(line); + if (n == null) return null; + } + var marker = line.gutterMarker; + return {line: n, handle: line, text: line.text, markerText: marker && marker.text, + markerClass: marker && marker.style, lineClass: line.className, bgClass: line.bgClassName}; + } + + function stringWidth(str) { + measure.innerHTML = "
    x
    "; + measure.firstChild.firstChild.firstChild.nodeValue = str; + return measure.firstChild.firstChild.offsetWidth || 10; + } + // These are used to go from pixel positions to character + // positions, taking varying character widths into account. + function charFromX(line, x) { + if (x <= 0) return 0; + var lineObj = getLine(line), text = lineObj.text; + function getX(len) { + return measureLine(lineObj, len).left; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil(x / charWidth())); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return to; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) return (toX - x > x - fromX) ? from : to; + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX;} + else {from = middle; fromX = middleX;} + } + } + + var tempId = "CodeMirror-temp-" + Math.floor(Math.random() * 0xffffff).toString(16); + function measureLine(line, ch) { + if (ch == 0) return {top: 0, left: 0}; + var wbr = options.lineWrapping && ch < line.text.length && + spanAffectsWrapping.test(line.text.slice(ch - 1, ch + 1)); + measure.innerHTML = "
    " + line.getHTML(makeTab, ch, tempId, wbr) + "
    "; + var elt = document.getElementById(tempId); + var top = elt.offsetTop, left = elt.offsetLeft; + // Older IEs report zero offsets for spans directly after a wrap + if (ie && top == 0 && left == 0) { + var backup = document.createElement("span"); + backup.innerHTML = "x"; + elt.parentNode.insertBefore(backup, elt.nextSibling); + top = backup.offsetTop; + } + return {top: top, left: left}; + } + function localCoords(pos, inLineWrap) { + var x, lh = textHeight(), y = lh * (heightAtLine(doc, pos.line) - (inLineWrap ? displayOffset : 0)); + if (pos.ch == 0) x = 0; + else { + var sp = measureLine(getLine(pos.line), pos.ch); + x = sp.left; + if (options.lineWrapping) y += Math.max(0, sp.top); + } + return {x: x, y: y, yBot: y + lh}; + } + // Coords must be lineSpace-local + function coordsChar(x, y) { + if (y < 0) return {line: 0, ch: 0}; + var th = textHeight(), cw = charWidth(), heightPos = displayOffset + Math.floor(y / th); + var lineNo = lineAtHeight(doc, heightPos); + if (lineNo >= doc.size) return {line: doc.size - 1, ch: getLine(doc.size - 1).text.length}; + var lineObj = getLine(lineNo), text = lineObj.text; + var tw = options.lineWrapping, innerOff = tw ? heightPos - heightAtLine(doc, lineNo) : 0; + if (x <= 0 && innerOff == 0) return {line: lineNo, ch: 0}; + function getX(len) { + var sp = measureLine(lineObj, len); + if (tw) { + var off = Math.round(sp.top / th); + return Math.max(0, sp.left + (off - innerOff) * scroller.clientWidth); + } + return sp.left; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil((x + innerOff * scroller.clientWidth * .9) / cw)); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return {line: lineNo, ch: to}; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) return {line: lineNo, ch: (toX - x > x - fromX) ? from : to}; + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX;} + else {from = middle; fromX = middleX;} + } + } + function pageCoords(pos) { + var local = localCoords(pos, true), off = eltOffset(lineSpace); + return {x: off.left + local.x, y: off.top + local.y, yBot: off.top + local.yBot}; + } + + var cachedHeight, cachedHeightFor, measureText; + function textHeight() { + if (measureText == null) { + measureText = "
    ";
    +        for (var i = 0; i < 49; ++i) measureText += "x
    "; + measureText += "x
    "; + } + var offsetHeight = lineDiv.clientHeight; + if (offsetHeight == cachedHeightFor) return cachedHeight; + cachedHeightFor = offsetHeight; + measure.innerHTML = measureText; + cachedHeight = measure.firstChild.offsetHeight / 50 || 1; + measure.innerHTML = ""; + return cachedHeight; + } + var cachedWidth, cachedWidthFor = 0; + function charWidth() { + if (scroller.clientWidth == cachedWidthFor) return cachedWidth; + cachedWidthFor = scroller.clientWidth; + return (cachedWidth = stringWidth("x")); + } + function paddingTop() {return lineSpace.offsetTop;} + function paddingLeft() {return lineSpace.offsetLeft;} + + function posFromMouse(e, liberal) { + var offW = eltOffset(scroller, true), x, y; + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX; y = e.clientY; } catch (e) { return null; } + // This is a mess of a heuristic to try and determine whether a + // scroll-bar was clicked or not, and to return null if one was + // (and !liberal). + if (!liberal && (x - offW.left > scroller.clientWidth || y - offW.top > scroller.clientHeight)) + return null; + var offL = eltOffset(lineSpace, true); + return coordsChar(x - offL.left, y - offL.top); + } + function onContextMenu(e) { + var pos = posFromMouse(e), scrollPos = scrollbar.scrollTop; + if (!pos || opera) return; // Opera is difficult. + if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) + operation(setCursor)(pos.line, pos.ch); + + var oldCSS = input.style.cssText; + inputDiv.style.position = "absolute"; + input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; " + + "border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + leaveInputAlone = true; + var val = input.value = getSelection(); + focusInput(); + selectInput(input); + function rehide() { + var newVal = splitLines(input.value).join("\n"); + if (newVal != val && !options.readOnly) operation(replaceSelection)(newVal, "end"); + inputDiv.style.position = "relative"; + input.style.cssText = oldCSS; + if (ie_lt9) scrollbar.scrollTop = scrollPos; + leaveInputAlone = false; + resetInput(true); + slowPoll(); + } + + if (gecko) { + e_stop(e); + var mouseup = connect(window, "mouseup", function() { + mouseup(); + setTimeout(rehide, 20); + }, true); + } else { + setTimeout(rehide, 50); + } + } + + // Cursor-blinking + function restartBlink() { + clearInterval(blinker); + var on = true; + cursor.style.visibility = ""; + blinker = setInterval(function() { + cursor.style.visibility = (on = !on) ? "" : "hidden"; + }, 650); + } + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; + function matchBrackets(autoclear) { + var head = sel.inverted ? sel.from : sel.to, line = getLine(head.line), pos = head.ch - 1; + var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; + if (!match) return; + var ch = match.charAt(0), forward = match.charAt(1) == ">", d = forward ? 1 : -1, st = line.styles; + for (var off = pos + 1, i = 0, e = st.length; i < e; i+=2) + if ((off -= st[i].length) <= 0) {var style = st[i+1]; break;} + + var stack = [line.text.charAt(pos)], re = /[(){}[\]]/; + function scan(line, from, to) { + if (!line.text) return; + var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur; + for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) { + var text = st[i]; + if (st[i+1] != style) {pos += d * text.length; continue;} + for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) { + if (pos >= from && pos < to && re.test(cur = text.charAt(j))) { + var match = matching[cur]; + if (match.charAt(1) == ">" == forward) stack.push(cur); + else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false}; + else if (!stack.length) return {pos: pos, match: true}; + } + } + } + } + for (var i = head.line, e = forward ? Math.min(i + 100, doc.size) : Math.max(-1, i - 100); i != e; i+=d) { + var line = getLine(i), first = i == head.line; + var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length); + if (found) break; + } + if (!found) found = {pos: null, match: false}; + var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style), + two = found.pos != null && markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style); + var clear = operation(function(){one.clear(); two && two.clear();}); + if (autoclear) setTimeout(clear, 800); + else bracketHighlighted = clear; + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(n) { + var minindent, minline; + for (var search = n, lim = n - 40; search > lim; --search) { + if (search == 0) return 0; + var line = getLine(search-1); + if (line.stateAfter) return search; + var indented = line.indentation(options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + function getStateBefore(n) { + var start = findStartLine(n), state = start && getLine(start-1).stateAfter; + if (!state) state = startState(mode); + else state = copyState(mode, state); + doc.iter(start, n, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + if (start < n) changes.push({from: start, to: n}); + if (n < doc.size && !getLine(n).stateAfter) work.push(n); + return state; + } + function highlightLines(start, end) { + var state = getStateBefore(start); + doc.iter(start, end, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + } + function highlightWorker() { + var end = +new Date + options.workTime; + var foundWork = work.length; + while (work.length) { + if (!getLine(showingFrom).stateAfter) var task = showingFrom; + else var task = work.pop(); + if (task >= doc.size) continue; + var start = findStartLine(task), state = start && getLine(start-1).stateAfter; + if (state) state = copyState(mode, state); + else state = startState(mode); + + var unchanged = 0, compare = mode.compareStates, realChange = false, + i = start, bail = false; + doc.iter(i, doc.size, function(line) { + var hadState = line.stateAfter; + if (+new Date > end) { + work.push(i); + startWorker(options.workDelay); + if (realChange) changes.push({from: task, to: i + 1}); + return (bail = true); + } + var changed = line.highlight(mode, state, options.tabSize); + if (changed) realChange = true; + line.stateAfter = copyState(mode, state); + var done = null; + if (compare) { + var same = hadState && compare(hadState, state); + if (same != Pass) done = !!same; + } + if (done == null) { + if (changed !== false || !hadState) unchanged = 0; + else if (++unchanged > 3 && (!mode.indent || mode.indent(hadState, "") == mode.indent(state, ""))) + done = true; + } + if (done) return true; + ++i; + }); + if (bail) return; + if (realChange) changes.push({from: task, to: i + 1}); + } + if (foundWork && options.onHighlightComplete) + options.onHighlightComplete(instance); + } + function startWorker(time) { + if (!work.length) return; + highlight.set(time, operation(highlightWorker)); + } + + // Operations are used to wrap changes in such a way that each + // change won't have to update the cursor and display (which would + // be awkward, slow, and error-prone), but instead updates are + // batched and then all combined and executed at once. + function startOperation() { + updateInput = userSelChange = textChanged = null; + changes = []; selectionChanged = false; callbacks = []; + } + function endOperation() { + if (updateMaxLine) computeMaxLength(); + if (maxLineChanged && !options.lineWrapping) { + var cursorWidth = widthForcer.offsetWidth, left = stringWidth(maxLine); + widthForcer.style.left = left + "px"; + lineSpace.style.minWidth = (left + cursorWidth) + "px"; + maxLineChanged = false; + } + var newScrollPos, updated; + if (selectionChanged) { + var coords = calculateCursorCoords(); + newScrollPos = calculateScrollPos(coords.x, coords.y, coords.x, coords.yBot); + } + if (changes.length) updated = updateDisplay(changes, true, (newScrollPos ? newScrollPos.scrollTop : null)); + else { + if (selectionChanged) updateSelection(); + if (gutterDirty) updateGutter(); + } + if (newScrollPos) scrollCursorIntoView(); + if (selectionChanged) {scrollEditorIntoView(); restartBlink();} + + if (focused && !leaveInputAlone && + (updateInput === true || (updateInput !== false && selectionChanged))) + resetInput(userSelChange); + + if (selectionChanged && options.matchBrackets) + setTimeout(operation(function() { + if (bracketHighlighted) {bracketHighlighted(); bracketHighlighted = null;} + if (posEq(sel.from, sel.to)) matchBrackets(false); + }), 20); + var sc = selectionChanged, cbs = callbacks; // these can be reset by callbacks + if (textChanged && options.onChange && instance) + options.onChange(instance, textChanged); + if (sc && options.onCursorActivity) + options.onCursorActivity(instance); + for (var i = 0; i < cbs.length; ++i) cbs[i](instance); + if (updated && options.onUpdate) options.onUpdate(instance); + } + var nestedOperation = 0; + function operation(f) { + return function() { + if (!nestedOperation++) startOperation(); + try {var result = f.apply(this, arguments);} + finally {if (!--nestedOperation) endOperation();} + return result; + }; + } + + function compoundChange(f) { + history.startCompound(); + try { return f(); } finally { history.endCompound(); } + } + + for (var ext in extensions) + if (extensions.propertyIsEnumerable(ext) && + !instance.propertyIsEnumerable(ext)) + instance[ext] = extensions[ext]; + return instance; + } // (end of function CodeMirror) + + // The default configuration options. + CodeMirror.defaults = { + value: "", + mode: null, + theme: "default", + indentUnit: 2, + indentWithTabs: false, + smartIndent: true, + tabSize: 4, + keyMap: "default", + extraKeys: null, + electricChars: true, + autoClearEmptyLines: false, + onKeyEvent: null, + onDragEvent: null, + lineWrapping: false, + lineNumbers: false, + gutter: false, + fixedGutter: false, + firstLineNumber: 1, + readOnly: false, + dragDrop: true, + onChange: null, + onCursorActivity: null, + onGutterClick: null, + onHighlightComplete: null, + onUpdate: null, + onFocus: null, onBlur: null, onScroll: null, + matchBrackets: false, + workTime: 100, + workDelay: 200, + pollInterval: 100, + undoDepth: 40, + tabindex: null, + autofocus: null, + lineNumberFormatter: function(integer) { return integer; } + }; + + var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); + var mac = ios || /Mac/.test(navigator.platform); + var win = /Win/.test(navigator.platform); + + // Known modes, by name and by MIME + var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; + CodeMirror.defineMode = function(name, mode) { + if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; + if (arguments.length > 2) { + mode.dependencies = []; + for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]); + } + modes[name] = mode; + }; + CodeMirror.defineMIME = function(mime, spec) { + mimeModes[mime] = spec; + }; + CodeMirror.resolveMode = function(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) + spec = mimeModes[spec]; + else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) + return CodeMirror.resolveMode("application/xml"); + if (typeof spec == "string") return {name: spec}; + else return spec || {name: "null"}; + }; + CodeMirror.getMode = function(options, spec) { + var spec = CodeMirror.resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) return CodeMirror.getMode(options, "text/plain"); + return mfactory(options, spec); + }; + CodeMirror.listModes = function() { + var list = []; + for (var m in modes) + if (modes.propertyIsEnumerable(m)) list.push(m); + return list; + }; + CodeMirror.listMIMEs = function() { + var list = []; + for (var m in mimeModes) + if (mimeModes.propertyIsEnumerable(m)) list.push({mime: m, mode: mimeModes[m]}); + return list; + }; + + var extensions = CodeMirror.extensions = {}; + CodeMirror.defineExtension = function(name, func) { + extensions[name] = func; + }; + + var commands = CodeMirror.commands = { + selectAll: function(cm) {cm.setSelection({line: 0, ch: 0}, {line: cm.lineCount() - 1});}, + killLine: function(cm) { + var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); + if (!sel && cm.getLine(from.line).length == from.ch) cm.replaceRange("", from, {line: from.line + 1, ch: 0}); + else cm.replaceRange("", from, sel ? to : {line: from.line}); + }, + deleteLine: function(cm) {var l = cm.getCursor().line; cm.replaceRange("", {line: l, ch: 0}, {line: l});}, + undo: function(cm) {cm.undo();}, + redo: function(cm) {cm.redo();}, + goDocStart: function(cm) {cm.setCursor(0, 0, true);}, + goDocEnd: function(cm) {cm.setSelection({line: cm.lineCount() - 1}, null, true);}, + goLineStart: function(cm) {cm.setCursor(cm.getCursor().line, 0, true);}, + goLineStartSmart: function(cm) { + var cur = cm.getCursor(); + var text = cm.getLine(cur.line), firstNonWS = Math.max(0, text.search(/\S/)); + cm.setCursor(cur.line, cur.ch <= firstNonWS && cur.ch ? 0 : firstNonWS, true); + }, + goLineEnd: function(cm) {cm.setSelection({line: cm.getCursor().line}, null, true);}, + goLineUp: function(cm) {cm.moveV(-1, "line");}, + goLineDown: function(cm) {cm.moveV(1, "line");}, + goPageUp: function(cm) {cm.moveV(-1, "page");}, + goPageDown: function(cm) {cm.moveV(1, "page");}, + goCharLeft: function(cm) {cm.moveH(-1, "char");}, + goCharRight: function(cm) {cm.moveH(1, "char");}, + goColumnLeft: function(cm) {cm.moveH(-1, "column");}, + goColumnRight: function(cm) {cm.moveH(1, "column");}, + goWordLeft: function(cm) {cm.moveH(-1, "word");}, + goWordRight: function(cm) {cm.moveH(1, "word");}, + delCharLeft: function(cm) {cm.deleteH(-1, "char");}, + delCharRight: function(cm) {cm.deleteH(1, "char");}, + delWordLeft: function(cm) {cm.deleteH(-1, "word");}, + delWordRight: function(cm) {cm.deleteH(1, "word");}, + indentAuto: function(cm) {cm.indentSelection("smart");}, + indentMore: function(cm) {cm.indentSelection("add");}, + indentLess: function(cm) {cm.indentSelection("subtract");}, + insertTab: function(cm) {cm.replaceSelection("\t", "end");}, + defaultTab: function(cm) { + if (cm.somethingSelected()) cm.indentSelection("add"); + else cm.replaceSelection("\t", "end"); + }, + transposeChars: function(cm) { + var cur = cm.getCursor(), line = cm.getLine(cur.line); + if (cur.ch > 0 && cur.ch < line.length - 1) + cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), + {line: cur.line, ch: cur.ch - 1}, {line: cur.line, ch: cur.ch + 1}); + }, + newlineAndIndent: function(cm) { + cm.replaceSelection("\n", "end"); + cm.indentLine(cm.getCursor().line); + }, + toggleOverwrite: function(cm) {cm.toggleOverwrite();} + ,delSpaceToPrevTabStop : function(cm){ + var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); + if (!posEq(from, to)) {cm.replaceRange("", from, to); return} + var cur = cm.getCursor(), line = cm.getLine(cur.line); + var tabsize = cm.getOption('tabSize'); + var chToPrevTabStop = cur.ch-(Math.ceil(cur.ch/tabsize)-1)*tabsize; + var from = {ch:cur.ch-chToPrevTabStop,line:cur.line} + var select = cm.getRange(from,cur) + if( select.match(/^\ +$/) != null){ + cm.replaceRange("",from,cur) + } else { + cm.deleteH(-1,"char") + } + } + }; + + var keyMap = CodeMirror.keyMap = {}; + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharRight", "Backspace": "delCharLeft", "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" + }; + // Note that the save and find-related commands aren't defined by + // default. Unknown commands are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", + "Ctrl-Left": "goWordLeft", "Ctrl-Right": "goWordRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delWordLeft", "Ctrl-Delete": "delWordRight", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + fallthrough: "basic" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goWordLeft", + "Alt-Right": "goWordRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delWordLeft", + "Ctrl-Alt-Backspace": "delWordRight", "Alt-Delete": "delWordRight", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", + fallthrough: ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageUp", "Shift-Ctrl-V": "goPageDown", "Ctrl-D": "delCharRight", "Ctrl-H": "delCharLeft", + "Alt-D": "delWordRight", "Alt-Backspace": "delWordLeft", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" + }; + + function getKeyMap(val) { + if (typeof val == "string") return keyMap[val]; + else return val; + } + function lookupKey(name, extraMap, map, handle, stop) { + function lookup(map) { + map = getKeyMap(map); + var found = map[name]; + if (found != null && handle(found)) return true; + if (map.nofallthrough) { + if (stop) stop(); + return true; + } + var fallthrough = map.fallthrough; + if (fallthrough == null) return false; + if (Object.prototype.toString.call(fallthrough) != "[object Array]") + return lookup(fallthrough); + for (var i = 0, e = fallthrough.length; i < e; ++i) { + if (lookup(fallthrough[i])) return true; + } + return false; + } + if (extraMap && lookup(extraMap)) return true; + return lookup(map); + } + function isModifierKey(event) { + var name = keyNames[e_prop(event, "keyCode")]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + } + + CodeMirror.fromTextArea = function(textarea, options) { + if (!options) options = {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabindex) + options.tabindex = textarea.tabindex; + if (options.autofocus == null && textarea.getAttribute("autofocus") != null) + options.autofocus = true; + + function save() {textarea.value = instance.getValue();} + if (textarea.form) { + // Deplorable hack to make the submit method do the right thing. + var rmSubmit = connect(textarea.form, "submit", save, true); + if (typeof textarea.form.submit == "function") { + var realSubmit = textarea.form.submit; + function wrappedSubmit() { + save(); + textarea.form.submit = realSubmit; + textarea.form.submit(); + textarea.form.submit = wrappedSubmit; + } + textarea.form.submit = wrappedSubmit; + } + } + + textarea.style.display = "none"; + var instance = CodeMirror(function(node) { + textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + instance.save = save; + instance.getTextArea = function() { return textarea; }; + instance.toTextArea = function() { + save(); + textarea.parentNode.removeChild(instance.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + rmSubmit(); + if (typeof textarea.form.submit == "function") + textarea.form.submit = realSubmit; + } + }; + return instance; + }; + + // Utility functions for working with state. Exported because modes + // sometimes need to do this. + function copyState(mode, state) { + if (state === true) return state; + if (mode.copyState) return mode.copyState(state); + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) val = val.concat([]); + nstate[n] = val; + } + return nstate; + } + CodeMirror.copyState = copyState; + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + } + CodeMirror.startState = startState; + + // The character stream used by a mode's parser. + function StringStream(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + } + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == 0;}, + peek: function() {return this.string.charAt(this.pos);}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() {return countColumn(this.string, this.start, this.tabSize);}, + indentation: function() {return countColumn(this.string, null, this.tabSize);}, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + function cased(str) {return caseInsensitive ? str.toLowerCase() : str;} + if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);} + }; + CodeMirror.StringStream = StringStream; + + function MarkedText(from, to, className, marker) { + this.from = from; this.to = to; this.style = className; this.marker = marker; + } + MarkedText.prototype = { + attach: function(line) { this.marker.set.push(line); }, + detach: function(line) { + var ix = indexOf(this.marker.set, line); + if (ix > -1) this.marker.set.splice(ix, 1); + }, + split: function(pos, lenBefore) { + if (this.to <= pos && this.to != null) return null; + var from = this.from < pos || this.from == null ? null : this.from - pos + lenBefore; + var to = this.to == null ? null : this.to - pos + lenBefore; + return new MarkedText(from, to, this.style, this.marker); + }, + dup: function() { return new MarkedText(null, null, this.style, this.marker); }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if (fromOpen && to > this.from && (to < this.to || this.to == null)) + this.from = null; + else if (this.from != null && this.from >= from) + this.from = Math.max(to, this.from) + diff; + if (toOpen && (from < this.to || this.to == null) && (from > this.from || this.from == null)) + this.to = null; + else if (this.to != null && this.to > from) + this.to = to < this.to ? this.to + diff : from; + }, + isDead: function() { return this.from != null && this.to != null && this.from >= this.to; }, + sameSet: function(x) { return this.marker == x.marker; } + }; + + function Bookmark(pos) { + this.from = pos; this.to = pos; this.line = null; + } + Bookmark.prototype = { + attach: function(line) { this.line = line; }, + detach: function(line) { if (this.line == line) this.line = null; }, + split: function(pos, lenBefore) { + if (pos < this.from) { + this.from = this.to = (this.from - pos) + lenBefore; + return this; + } + }, + isDead: function() { return this.from > this.to; }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if ((fromOpen || from < this.from) && (toOpen || to > this.to)) { + this.from = 0; this.to = -1; + } else if (this.from > from) { + this.from = this.to = Math.max(to, this.from) + diff; + } + }, + sameSet: function(x) { return false; }, + find: function() { + if (!this.line || !this.line.parent) return null; + return {line: lineNo(this.line), ch: this.from}; + }, + clear: function() { + if (this.line) { + var found = indexOf(this.line.marked, this); + if (found != -1) this.line.marked.splice(found, 1); + this.line = null; + } + } + }; + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + function Line(text, styles) { + this.styles = styles || [text, null]; + this.text = text; + this.height = 1; + this.marked = this.gutterMarker = this.className = this.bgClassName = this.handlers = null; + this.stateAfter = this.parent = this.hidden = null; + } + Line.inheritMarks = function(text, orig) { + var ln = new Line(text), mk = orig && orig.marked; + if (mk) { + for (var i = 0; i < mk.length; ++i) { + if (mk[i].to == null && mk[i].style) { + var newmk = ln.marked || (ln.marked = []), mark = mk[i]; + var nmark = mark.dup(); newmk.push(nmark); nmark.attach(ln); + } + } + } + return ln; + } + Line.prototype = { + // Replace a piece of a line, keeping the styles around it intact. + replace: function(from, to_, text) { + var st = [], mk = this.marked, to = to_ == null ? this.text.length : to_; + copyStyles(0, from, this.styles, st); + if (text) st.push(text, null); + copyStyles(to, this.text.length, this.styles, st); + this.styles = st; + this.text = this.text.slice(0, from) + text + this.text.slice(to); + this.stateAfter = null; + if (mk) { + var diff = text.length - (to - from); + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + mark.clipTo(from == null, from || 0, to_ == null, to, diff); + if (mark.isDead()) {mark.detach(this); mk.splice(i--, 1);} + } + } + }, + // Split a part off a line, keeping styles and markers intact. + split: function(pos, textBefore) { + var st = [textBefore, null], mk = this.marked; + copyStyles(pos, this.text.length, this.styles, st); + var taken = new Line(textBefore + this.text.slice(pos), st); + if (mk) { + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + var newmark = mark.split(pos, textBefore.length); + if (newmark) { + if (!taken.marked) taken.marked = []; + taken.marked.push(newmark); newmark.attach(taken); + if (newmark == mark) mk.splice(i--, 1); + } + } + } + return taken; + }, + append: function(line) { + var mylen = this.text.length, mk = line.marked, mymk = this.marked; + this.text += line.text; + copyStyles(0, line.text.length, line.styles, this.styles); + if (mymk) { + for (var i = 0; i < mymk.length; ++i) + if (mymk[i].to == null) mymk[i].to = mylen; + } + if (mk && mk.length) { + if (!mymk) this.marked = mymk = []; + outer: for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + if (!mark.from) { + for (var j = 0; j < mymk.length; ++j) { + var mymark = mymk[j]; + if (mymark.to == mylen && mymark.sameSet(mark)) { + mymark.to = mark.to == null ? null : mark.to + mylen; + if (mymark.isDead()) { + mymark.detach(this); + mk.splice(i--, 1); + } + continue outer; + } + } + } + mymk.push(mark); + mark.attach(this); + mark.from += mylen; + if (mark.to != null) mark.to += mylen; + } + } + }, + fixMarkEnds: function(other) { + var mk = this.marked, omk = other.marked; + if (!mk) return; + outer: for (var i = 0; i < mk.length; ++i) { + var mark = mk[i], close = mark.to == null; + if (close && omk) { + for (var j = 0; j < omk.length; ++j) { + var om = omk[j]; + if (!om.sameSet(mark) || om.from != null) continue + if (mark.from == this.text.length && om.to == 0) { + omk.splice(j, 1); + mk.splice(i--, 1); + continue outer; + } else { + close = false; break; + } + } + } + if (close) mark.to = this.text.length; + } + }, + fixMarkStarts: function() { + var mk = this.marked; + if (!mk) return; + for (var i = 0; i < mk.length; ++i) + if (mk[i].from == null) mk[i].from = 0; + }, + addMark: function(mark) { + mark.attach(this); + if (this.marked == null) this.marked = []; + this.marked.push(mark); + this.marked.sort(function(a, b){return (a.from || 0) - (b.from || 0);}); + }, + // Run the given mode's parser over a line, update the styles + // array, which contains alternating fragments of text and CSS + // classes. + highlight: function(mode, state, tabSize) { + var stream = new StringStream(this.text, tabSize), st = this.styles, pos = 0; + var changed = false, curWord = st[0], prevWord; + if (this.text == "" && mode.blankLine) mode.blankLine(state); + while (!stream.eol()) { + var style = mode.token(stream, state); + var substr = this.text.slice(stream.start, stream.pos); + stream.start = stream.pos; + if (pos && st[pos-1] == style) + st[pos-2] += substr; + else if (substr) { + if (!changed && (st[pos+1] != style || (pos && st[pos-2] != prevWord))) changed = true; + st[pos++] = substr; st[pos++] = style; + prevWord = curWord; curWord = st[pos]; + } + // Give up when line is ridiculously long + if (stream.pos > 5000) { + st[pos++] = this.text.slice(stream.pos); st[pos++] = null; + break; + } + } + if (st.length != pos) {st.length = pos; changed = true;} + if (pos && st[pos-2] != prevWord) changed = true; + // Short lines with simple highlights return null, and are + // counted as changed by the driver because they are likely to + // highlight the same way in various contexts. + return changed || (st.length < 5 && this.text.length < 10 ? null : false); + }, + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(mode, state, ch) { + var txt = this.text, stream = new StringStream(txt); + while (stream.pos < ch && !stream.eol()) { + stream.start = stream.pos; + var style = mode.token(stream, state); + } + return {start: stream.start, + end: stream.pos, + string: stream.current(), + className: style || null, + state: state}; + }, + indentation: function(tabSize) {return countColumn(this.text, null, tabSize);}, + // Produces an HTML fragment for the line, taking selection, + // marking, and highlighting into account. + getHTML: function(makeTab, wrapAt, wrapId, wrapWBR) { + var html = [], first = true, col = 0; + function span_(text, style) { + if (!text) return; + // Work around a bug where, in some compat modes, IE ignores leading spaces + if (first && ie && text.charAt(0) == " ") text = "\u00a0" + text.slice(1); + first = false; + if (text.indexOf("\t") == -1) { + col += text.length; + var escaped = htmlEscape(text); + } else { + var escaped = ""; + for (var pos = 0;;) { + var idx = text.indexOf("\t", pos); + if (idx == -1) { + escaped += htmlEscape(text.slice(pos)); + col += text.length - pos; + break; + } else { + col += idx - pos; + var tab = makeTab(col); + escaped += htmlEscape(text.slice(pos, idx)) + tab.html; + col += tab.width; + pos = idx + 1; + } + } + } + if (style) html.push('', escaped, ""); + else html.push(escaped); + } + var span = span_; + if (wrapAt != null) { + var outPos = 0, open = ""; + span = function(text, style) { + var l = text.length; + if (wrapAt >= outPos && wrapAt < outPos + l) { + if (wrapAt > outPos) { + span_(text.slice(0, wrapAt - outPos), style); + // See comment at the definition of spanAffectsWrapping + if (wrapWBR) html.push(""); + } + html.push(open); + var cut = wrapAt - outPos; + span_(opera ? text.slice(cut, cut + 1) : text.slice(cut), style); + html.push(""); + if (opera) span_(text.slice(cut + 1), style); + wrapAt--; + outPos += l; + } else { + outPos += l; + span_(text, style); + // Output empty wrapper when at end of line + // (Gecko and IE8+ do strange wrapping when adding a space + // to the end of the line. Other browsers don't react well + // to zero-width spaces. So we do hideous browser sniffing + // to determine which to use.) + if (outPos == wrapAt && outPos == len) + html.push(open + (gecko || (ie && !ie_lt8) ? "​" : " ") + ""); + // Stop outputting HTML when gone sufficiently far beyond measure + else if (outPos > wrapAt + 10 && /\s/.test(text)) span = function(){}; + } + } + } + + var st = this.styles, allText = this.text, marked = this.marked; + var len = allText.length; + function styleToClass(style) { + if (!style) return null; + return "cm-" + style.replace(/ +/g, " cm-"); + } + + if (!allText && wrapAt == null) { + span(" "); + } else if (!marked || !marked.length) { + for (var i = 0, ch = 0; ch < len; i+=2) { + var str = st[i], style = st[i+1], l = str.length; + if (ch + l > len) str = str.slice(0, len - ch); + ch += l; + span(str, styleToClass(style)); + } + } else { + var pos = 0, i = 0, text = "", style, sg = 0; + var nextChange = marked[0].from || 0, marks = [], markpos = 0; + function advanceMarks() { + var m; + while (markpos < marked.length && + ((m = marked[markpos]).from == pos || m.from == null)) { + if (m.style != null) marks.push(m); + ++markpos; + } + nextChange = markpos < marked.length ? marked[markpos].from : Infinity; + for (var i = 0; i < marks.length; ++i) { + var to = marks[i].to; + if (to == null) to = Infinity; + if (to == pos) marks.splice(i--, 1); + else nextChange = Math.min(to, nextChange); + } + } + var m = 0; + while (pos < len) { + if (nextChange == pos) advanceMarks(); + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + var appliedStyle = style; + for (var j = 0; j < marks.length; ++j) + appliedStyle = (appliedStyle ? appliedStyle + " " : "") + marks[j].style; + span(end > upto ? text.slice(0, upto - pos) : text, appliedStyle); + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} + pos = end; + } + text = st[i++]; style = styleToClass(st[i++]); + } + } + } + return html.join(""); + }, + cleanUp: function() { + this.parent = null; + if (this.marked) + for (var i = 0, e = this.marked.length; i < e; ++i) this.marked[i].detach(this); + } + }; + // Utility used by replace and split above + function copyStyles(from, to, source, dest) { + for (var i = 0, pos = 0, state = 0; pos < to; i+=2) { + var part = source[i], end = pos + part.length; + if (state == 0) { + if (end > from) dest.push(part.slice(from - pos, Math.min(part.length, to - pos)), source[i+1]); + if (end >= from) state = 1; + } else if (state == 1) { + if (end > to) dest.push(part.slice(0, to - pos), source[i+1]); + else dest.push(part, source[i+1]); + } + pos = end; + } + } + + // Data structure that holds the sequence of lines. + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + for (var i = 0, e = lines.length, height = 0; i < e; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length; }, + remove: function(at, n, callbacks) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + line.cleanUp(); + if (line.handlers) + for (var j = 0; j < line.handlers.length; ++j) callbacks.push(line.handlers[j]); + } + this.lines.splice(at, n); + }, + collapse: function(lines) { + lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); + }, + insertHeight: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; + }, + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + if (op(this.lines[at])) return true; + } + }; + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0, e = children.length; i < e; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + BranchChunk.prototype = { + chunkSize: function() { return this.size; }, + remove: function(at, n, callbacks) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.remove(at, rm, callbacks); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) break; + at = 0; + } else at -= sz; + } + if (this.size - n < 25) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + collapse: function(lines) { + for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); + }, + insert: function(at, lines) { + var height = 0; + for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; + this.insertHeight(at, lines, height); + }, + insertHeight: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertHeight(at, lines, height); + if (child.lines && child.lines.length > 50) { + while (child.lines.length > 50) { + var spilled = child.lines.splice(child.lines.length - 25, 25); + var newleaf = new LeafChunk(spilled); + child.height -= newleaf.height; + this.children.splice(i + 1, 0, newleaf); + newleaf.parent = this; + } + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + maybeSpill: function() { + if (this.children.length <= 10) return; + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iter: function(from, to, op) { this.iterN(from, to - from, op); }, + iterN: function(at, n, op) { + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) return true; + if ((n -= used) == 0) break; + at = 0; + } else at -= sz; + } + } + }; + + function getLineAt(chunk, n) { + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break; } + n -= sz; + } + } + return chunk.lines[n]; + } + function lineNo(line) { + if (line.parent == null) return null; + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0, e = chunk.children.length; ; ++i) { + if (chunk.children[i] == cur) break; + no += chunk.children[i].chunkSize(); + } + } + return no; + } + function lineAtHeight(chunk, h) { + var n = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], ch = child.height; + if (h < ch) { chunk = child; continue outer; } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + for (var i = 0, e = chunk.lines.length; i < e; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) break; + h -= lh; + } + return n + i; + } + function heightAtLine(chunk, n) { + var h = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; continue outer; } + n -= sz; + h += child.height; + } + return h; + } while (!chunk.lines); + for (var i = 0; i < n; ++i) h += chunk.lines[i].height; + return h; + } + + // The history object 'chunks' changes that are made close together + // and at almost the same time into bigger undoable units. + function History() { + this.time = 0; + this.done = []; this.undone = []; + this.compound = 0; + this.closed = false; + } + History.prototype = { + addChange: function(start, added, old) { + this.undone.length = 0; + var time = +new Date, cur = this.done[this.done.length - 1], last = cur && cur[cur.length - 1]; + var dtime = time - this.time; + + if (this.compound && cur && !this.closed) { + cur.push({start: start, added: added, old: old}); + } else if (dtime > 400 || !last || this.closed || + last.start > start + old.length || last.start + last.added < start) { + this.done.push([{start: start, added: added, old: old}]); + this.closed = false; + } else { + var startBefore = Math.max(0, last.start - start), + endAfter = Math.max(0, (start + old.length) - (last.start + last.added)); + for (var i = startBefore; i > 0; --i) last.old.unshift(old[i - 1]); + for (var i = endAfter; i > 0; --i) last.old.push(old[old.length - i]); + if (startBefore) last.start = start; + last.added += added - (old.length - startBefore - endAfter); + } + this.time = time; + }, + startCompound: function() { + if (!this.compound++) this.closed = true; + }, + endCompound: function() { + if (!--this.compound) this.closed = true; + } + }; + + function stopMethod() {e_stop(this);} + // Ensure an event has a stop method. + function addStop(event) { + if (!event.stop) event.stop = stopMethod; + return event; + } + + function e_preventDefault(e) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + function e_stopPropagation(e) { + if (e.stopPropagation) e.stopPropagation(); + else e.cancelBubble = true; + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + CodeMirror.e_stop = e_stop; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + + function e_target(e) {return e.target || e.srcElement;} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) b = 1; + else if (e.button & 2) b = 3; + else if (e.button & 4) b = 2; + } + if (mac && e.ctrlKey && b == 1) b = 3; + return b; + } + + // Allow 3rd-party code to override event properties by adding an override + // object to an event object. + function e_prop(e, prop) { + var overridden = e.override && e.override.hasOwnProperty(prop); + return overridden ? e.override[prop] : e[prop]; + } + + // Event handler registration. If disconnect is true, it'll return a + // function that unregisters the handler. + function connect(node, type, handler, disconnect) { + if (typeof node.addEventListener == "function") { + node.addEventListener(type, handler, false); + if (disconnect) return function() {node.removeEventListener(type, handler, false);}; + } else { + var wrapHandler = function(event) {handler(event || window.event);}; + node.attachEvent("on" + type, wrapHandler); + if (disconnect) return function() {node.detachEvent("on" + type, wrapHandler);}; + } + } + CodeMirror.connect = connect; + + function Delayed() {this.id = null;} + Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; + + var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; + + var gecko = /gecko\/\d{7}/i.test(navigator.userAgent); + var ie = /MSIE \d/.test(navigator.userAgent); + var ie_lt8 = /MSIE [1-7]\b/.test(navigator.userAgent); + var ie_lt9 = /MSIE [1-8]\b/.test(navigator.userAgent); + var quirksMode = ie && document.documentMode == 5; + var webkit = /WebKit\//.test(navigator.userAgent); + var chrome = /Chrome\//.test(navigator.userAgent); + var opera = /Opera\//.test(navigator.userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var khtml = /KHTML\//.test(navigator.userAgent); + var mac_geLion = /Mac OS X 10\D([7-9]|\d\d)\D/.test(navigator.userAgent); + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie_lt9) return false; + var div = document.createElement('div'); + return "draggable" in div || "dragDrop" in div; + }(); + + // Feature-detect whether newlines in textareas are converted to \r\n + var lineSep = function () { + var te = document.createElement("textarea"); + te.value = "foo\nbar"; + if (te.value.indexOf("\r") > -1) return "\r\n"; + return "\n"; + }(); + + // For a reason I have yet to figure out, some browsers disallow + // word wrapping between certain characters *only* if a new inline + // element is started between them. This makes it hard to reliably + // measure the position of things, since that requires inserting an + // extra span. This terribly fragile set of regexps matches the + // character combinations that suffer from this phenomenon on the + // various browsers. + var spanAffectsWrapping = /^$/; // Won't match any two-character string + if (gecko) spanAffectsWrapping = /$'/; + else if (safari) spanAffectsWrapping = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/; + else if (chrome) spanAffectsWrapping = /\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/; + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) end = string.length; + } + for (var i = 0, n = 0; i < end; ++i) { + if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); + else ++n; + } + return n; + } + + function computedStyle(elt) { + if (elt.currentStyle) return elt.currentStyle; + return window.getComputedStyle(elt, null); + } + + function eltOffset(node, screen) { + // Take the parts of bounding client rect that we are interested in so we are able to edit if need be, + // since the returned value cannot be changed externally (they are kept in sync as the element moves within the page) + try { var box = node.getBoundingClientRect(); box = { top: box.top, left: box.left }; } + catch(e) { box = {top: 0, left: 0}; } + if (!screen) { + // Get the toplevel scroll, working around browser differences. + if (window.pageYOffset == null) { + var t = document.documentElement || document.body.parentNode; + if (t.scrollTop == null) t = document.body; + box.top += t.scrollTop; box.left += t.scrollLeft; + } else { + box.top += window.pageYOffset; box.left += window.pageXOffset; + } + } + return box; + } + + // Get a node's text content. + function eltText(node) { + return node.textContent || node.innerText || node.nodeValue || ""; + } + function selectInput(node) { + if (ios) { // Mobile Safari apparently has a bug where select() is broken. + node.selectionStart = 0; + node.selectionEnd = node.value.length; + } else node.select(); + } + + // Operations on {line, ch} objects. + function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} + function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} + function copyPos(x) {return {line: x.line, ch: x.ch};} + + var escapeElement = document.createElement("pre"); + function htmlEscape(str) { + escapeElement.textContent = str; + return escapeElement.innerHTML; + } + // Recent (late 2011) Opera betas insert bogus newlines at the start + // of the textContent, so we strip those. + if (htmlEscape("a") == "\na") { + htmlEscape = function(str) { + escapeElement.textContent = str; + return escapeElement.innerHTML.slice(1); + }; + // Some IEs don't preserve tabs through innerHTML + } else if (htmlEscape("\t") != "\t") { + htmlEscape = function(str) { + escapeElement.innerHTML = ""; + escapeElement.appendChild(document.createTextNode(str)); + return escapeElement.innerHTML; + }; + } + CodeMirror.htmlEscape = htmlEscape; + + // Used to position the cursor after an undo/redo by finding the + // last edited character. + function editEnd(from, to) { + if (!to) return 0; + if (!from) return to.length; + for (var i = from.length, j = to.length; i >= 0 && j >= 0; --i, --j) + if (from.charAt(i) != to.charAt(j)) break; + return j + 1; + } + + function indexOf(collection, elt) { + if (collection.indexOf) return collection.indexOf(elt); + for (var i = 0, e = collection.length; i < e; ++i) + if (collection[i] == elt) return i; + return -1; + } + function isWordChar(ch) { + return /\w/.test(ch) || ch.toUpperCase() != ch.toLowerCase(); + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) nl = string.length; + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result; + } : function(string){return string.split(/\r\n?|\n/);}; + CodeMirror.splitLines = splitLines; + + var hasSelection = window.getSelection ? function(te) { + try { return te.selectionStart != te.selectionEnd; } + catch(e) { return false; } + } : function(te) { + try {var range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) return false; + return range.compareEndPoints("StartToEnd", range) != 0; + }; + + CodeMirror.defineMode("null", function() { + return {token: function(stream) {stream.skipToEnd();}}; + }); + CodeMirror.defineMIME("text/plain", "null"); + + var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete", + 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home", + 63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"}; + CodeMirror.keyNames = keyNames; + (function() { + // Number keys + for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); + // Alphabetic keys + for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); + // Function keys + for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; + })(); + + return CodeMirror; +})(); diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/completer.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/completer.js new file mode 100644 index 000000000..ac2d95ccd --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/completer.js @@ -0,0 +1,307 @@ +// function completer. +// +// completer should be a class that take an cell instance +var IPython = (function (IPython) { + // that will prevent us from misspelling + "use strict"; + + // easyier key mapping + var key = IPython.utils.keycodes; + + function prepend_n_prc(str, n) { + for( var i =0 ; i< n ; i++) + { str = '%'+str } + return str; + } + + function _existing_completion(item, completion_array){ + for( var c in completion_array ) { + if(completion_array[c].substr(-item.length) == item) + { return true; } + } + return false; + } + + // what is the common start of all completions + function shared_start(B, drop_prct) { + if (B.length == 1) { + return B[0]; + } + var A = new Array(); + var common; + var min_lead_prct = 10; + for (var i = 0; i < B.length; i++) { + var str = B[i].str; + var localmin = 0; + if(drop_prct == true){ + while ( str.substr(0, 1) == '%') { + localmin = localmin+1; + str = str.substring(1); + } + } + min_lead_prct = Math.min(min_lead_prct, localmin); + A.push(str); + } + + if (A.length > 1) { + var tem1, tem2, s; + A = A.slice(0).sort(); + tem1 = A[0]; + s = tem1.length; + tem2 = A.pop(); + while (s && tem2.indexOf(tem1) == -1) { + tem1 = tem1.substring(0, --s); + } + if (tem1 == "" || tem2.indexOf(tem1) != 0) { + return prepend_n_prc('', min_lead_prct); + } + return { + str: prepend_n_prc(tem1, min_lead_prct), + type: "computed", + from: B[0].from, + to: B[0].to + }; + } + return null; + } + + + var Completer = function (cell) { + this.editor = cell.code_mirror; + var that = this; + $([IPython.events]).on('status_busy.Kernel', function () { + that.skip_kernel_completion = true; + }); + $([IPython.events]).on('status_idle.Kernel', function () { + that.skip_kernel_completion = false; + }); + + + }; + + + + Completer.prototype.startCompletion = function () { + // call for a 'first' completion, that will set the editor and do some + // special behaviour like autopicking if only one completion availlable + // + if (this.editor.somethingSelected()) return; + this.done = false; + // use to get focus back on opera + this.carry_on_completion(true); + }; + + Completer.prototype.carry_on_completion = function (ff) { + // Pass true as parameter if you want the commpleter to autopick when + // only one completion. This function is automatically reinvoked at + // each keystroke with ff = false + var cur = this.editor.getCursor(); + var line = this.editor.getLine(cur.line); + var pre_cursor = this.editor.getRange({ + line: cur.line, + ch: cur.ch - 1 + }, cur); + + // we need to check that we are still on a word boundary + // because while typing the completer is still reinvoking itself + if (!/[0-9a-z._/\\:~-]/i.test(pre_cursor)) { + this.close(); + return; + } + + this.autopick = false; + if (ff != 'undefined' && ff == true) { + this.autopick = true; + } + + // We want a single cursor position. + if (this.editor.somethingSelected()) return; + + // one kernel completion came back, finish_completing will be called with the results + // we fork here and directly call finish completing if kernel is busy + if (this.skip_kernel_completion == true) { + this.finish_completing({ + 'matches': [], + matched_text: "" + }) + } else { + var callbacks = { + 'complete_reply': $.proxy(this.finish_completing, this) + }; + IPython.notebook.kernel.complete(line, cur.ch, callbacks); + } + }; + + Completer.prototype.finish_completing = function (content) { + // let's build a function that wrap all that stuff into what is needed + // for the new completer: + var matched_text = content.matched_text; + var matches = content.matches; + + var cur = this.editor.getCursor(); + var results = CodeMirror.contextHint(this.editor); + var filterd_results = Array(); + //remove results from context completion + //that are already in kernel completion + for(var elm in results) { + if(_existing_completion(results[elm]['str'], matches) == false) + { filterd_results.push(results[elm]); } + } + + // append the introspection result, in order, at at the beginning of + // the table and compute the replacement range from current cursor + // positon and matched_text length. + for (var i = matches.length - 1; i >= 0; --i) { + filterd_results.unshift({ + str: matches[i], + type: "introspection", + from: { + line: cur.line, + ch: cur.ch - matched_text.length + }, + to: { + line: cur.line, + ch: cur.ch + } + }); + } + + // one the 2 sources results have been merge, deal with it + this.raw_result = filterd_results; + + // if empty result return + if (!this.raw_result || !this.raw_result.length) return; + + // When there is only one completion, use it directly. + if (this.autopick == true && this.raw_result.length == 1) { + this.insert(this.raw_result[0]); + return; + } + + if (this.raw_result.length == 1) { + // test if first and only completion totally matches + // what is typed, in this case dismiss + var str = this.raw_result[0].str; + var pre_cursor = this.editor.getRange({ + line: cur.line, + ch: cur.ch - str.length + }, cur); + if (pre_cursor == str) { + this.close(); + return; + } + } + + this.complete = $('
    ').addClass('completions'); + this.complete.attr('id', 'complete'); + + this.sel = $('",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.css b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.css new file mode 100644 index 000000000..82752b552 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.css @@ -0,0 +1 @@ +.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;}.ui-helper-clearfix:after{clear:both;}.ui-helper-clearfix{zoom:1;}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:hidden;*overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu .ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;font-weight:normal;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;} \ No newline at end of file diff --git a/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.js b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.js new file mode 100644 index 000000000..1365ee1c4 --- /dev/null +++ b/v3/bgranger-ipynb-embedding-demo/OPT-ipynb-static_files/jquery-ui.min.js @@ -0,0 +1,16 @@ +/*! + * jQuery UI @VERSION + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"@VERSION",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode&&a.element[0].parentNode.nodeType!==11)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a",options:{disabled:!1,create:null},_createWidget:function(b,c){c=a(c||this.defaultElement||this)[0],this.element=a(c),this.options=a.widget.extend({},this.options,this._getCreateOptions(),b),this.bindings=a(),this.hoverable=a(),this.focusable=a(),c!==this&&(a.data(c,this.widgetName,this),this._bind({remove:"destroy"}),this.document=a(c.style?c.ownerDocument:c.document||c),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create"),this._init()},_getCreateOptions:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled"),this.bindings.unbind("."+this.widgetName),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(c,d){var e=c,f,g,h;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof c=="string"){e={},f=c.split("."),c=f.shift();if(f.length){g=e[c]=a.widget.extend({},this.options[c]);for(h=0;h=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})}(jQuery),function(a,b){a.widget("ui.draggable",a.ui.mouse,{version:"@VERSION",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();droppablesLoop:for(var g=0;g
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),a.browser.opera&&/relative/.test(f.css("position"))&&f.css({position:"relative",top:"auto",left:"auto"}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(a){var b=this.helper,c=this.options,d={},e=this,f=this.originalMousePosition,g=this.axis,h=a.pageX-f.left||0,i=a.pageY-f.top||0,j=this._change[g];if(!j)return!1;var k=j.apply(this,[a,h,i]);this._updateVirtualBoundaries(a.shiftKey);if(this._aspectRatio||a.shiftKey)k=this._updateRatio(k,a);k=this._respectSize(k,a),this._propagate("resize",a),b.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(k),this._trigger("resize",a,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10),position:b.css("position")})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,e){a(b).each(function(){var b=a(this),f=a(this).data("resizable-alsoresize"),g={},i=e&&e.length?e:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(i,function(a,b){var c=(f[b]||0)+(h[b]||0);c&&c>=0&&(g[b]=c||null)}),a.browser.opera&&/relative/.test(b.css("position"))&&(d._revertToRelativePosition=!0,b.css({position:"absolute",top:"auto",left:"auto"})),b.css(g)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};d._revertToRelativePosition&&(d._revertToRelativePosition=!1,typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)),a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}}(jQuery),function(a,b){a.widget("ui.selectable",a.ui.mouse,{version:"@VERSION",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
    ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy();return this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(!this.options.disabled){var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element});return!1}})}},_mouseDrag:function(b){var c=this;this.dragged=!0;if(!this.options.disabled){var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!!i&&i.element!=c.element[0]){var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget().toggleClass("ui-sortable-disabled",!!c)):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f){e=a(this);return!1}});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}this.currentItem=e,this._removeCurrentsFromItems();return!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b);return!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs;return!1},_mouseStop:function(b,c){if(!!b){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers +[c].containerCache.over=0)}this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem));return this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"=");return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a),this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];e||(b.style.visibility="hidden");return b},update:function(a,b){if(!e||!!d.forcePlaceholderSize)b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!!c)if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:b.width(),height:b.height()},f=document.activeElement;b.wrap(d),(b[0]===f||a.contains(b[0],f))&&a(f).focus(),d=b.parent(),b.css("position")==="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),b.css(e);return d.css(c).show()},removeWrapper:function(b){var c=document.activeElement;b.parent().is(".ui-effects-wrapper")&&(b.parent().replaceWith(b),(b[0]===c||a.contains(b[0],c))&&a(c).focus());return b},setTransition:function(b,c,d,e){e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])});return e}}),a.fn.extend({effect:function(b,d,e,f){function m(b){function f(){a.isFunction(d)&&d.call(c[0]),a.isFunction(b)&&b()}var c=a(this),d=g.complete,e=g.mode;(c.is(":hidden")?e==="hide":e==="show")?f():j.call(c[0],g,f)}var g=l.apply(this,arguments),h=g.mode,i=g.queue,j=a.effects.effect[g.effect],k=!j&&c&&a.effects[g.effect];if(a.fx.off||!j&&!k)return h?this[h](g.duration,g.complete):this.each(function(){g.complete&&g.complete.call(this)});return j?i===!1?this.each(m):this.queue(i||"fx",m):k.call(this,{options:g,duration:g.duration,callback:g.complete,mode:g.mode})},_show:a.fn.show,show:function(a){if(m(a))return this._show.apply(this,arguments);var b=l.apply(this,arguments);b.mode="show";return this.effect.call(this,b)},_hide:a.fn.hide,hide:function(a){if(m(a))return this._hide.apply(this,arguments);var b=l.apply(this,arguments);b.mode="hide";return this.effect.call(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(m(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=l.apply(this,arguments);c.mode="toggle";return this.effect.call(this,c)},cssUnit:function(b){var c=this.css(b),d=[];a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])});return d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b+c;return-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b+c;return d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b+c;return-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){if((b/=e/2)<1)return d/2*b*b*b*b*b+c;return d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){if(b==0)return c;if(b==e)return c+d;if((b/=e/2)<1)return d/2*Math.pow(2,10*(b-1))+c;return d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){if((b/=e/2)<1)return-d/2*(Math.sqrt(1-b*b)-1)+c;return d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=e*.3,h=d;if(b==0)return c;if((b/=e)==1)return c+d;h1&&t.splice.apply(t,[1,0].concat(t.splice(u,l+1))),d.dequeue()}}(jQuery),function(a,b){a.effects.effect.clip=function(b,c){var d=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(d,b.mode||"hide"),g=f==="show",h=b.direction||"vertical",i=h==="vertical",j=i?"height":"width",k=i?"top":"left",l={},m,n,o;a.effects.save(d,e),d.show(),m=a.effects.createWrapper(d).css({overflow:"hidden"}),n=d[0].tagName==="IMG"?m:d,o=n[j](),g&&(n.css(j,0),n.css(k,o/2)),l[j]=g?o:0,l[k]=g?0:o/2,n.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){g||d.hide(),a.effects.restore(d,e),a.effects.removeWrapper(d),c()}})}}(jQuery),function(a,b){a.effects.effect.drop=function(b,c){var d=a(this),e=["position","top","bottom","left","right","opacity","height","width"],f=a.effects.setMode(d,b.mode||"hide"),g=f==="show",h=b.direction||"left",i=h==="up"||h==="down"?"top":"left",j=h==="up"||h==="left"?"pos":"neg",k={opacity:g?1:0},l;a.effects.save(d,e),d.show(),a.effects.createWrapper(d),l=b.distance||d[i=="top"?"outerHeight":"outerWidth"]({margin:!0})/2,g&&d.css("opacity",0).css(i,j=="pos"?-l:l),k[i]=(g?j==="pos"?"+=":"-=":j==="pos"?"-=":"+=")+l,d.animate(k,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){f=="hide"&&d.hide(),a.effects.restore(d,e),a.effects.removeWrapper(d),c()}})}}(jQuery),function(a,b){a.effects.effect.explode=function(b,c){function t(){f.css({visibility:"visible"}),a(l).remove(),h||f.hide(),c()}function s(){l.push(this),l.length==d*e&&t()}var d=b.pieces?Math.round(Math.sqrt(b.pieces)):3,e=d,f=a(this),g=a.effects.setMode(f,b.mode||"hide"),h=g==="show",i=f.show().css("visibility","hidden").offset(),j=Math.ceil(f.outerWidth()/e),k=Math.ceil(f.outerHeight()/d),l=[],m,n,o,p,q,r;for(m=0;m").css({position:"absolute",visibility:"visible",left:-n*j,top:-m*k}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:j,height:k,left:o+(h?q*j:0),top:p+(h?r*k:0),opacity:h?0:1}).animate({left:o+(h?0:q*j),top:p+(h?0:r*k),opacity:h?1:0},b.duration||500,b.easing,s)}}}(jQuery),function(a,b){a.effects.effect.fade=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"toggle"),f=e==="hide";d.show(),d.animate({opacity:f?0:1},{queue:!1,duration:b.duration,easing:b.easing,complete:function(){f&&d.hide(),c()}})}}(jQuery),function(a,b){a.effects.effect.fold=function(b,c){var d=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(d,b.mode||"hide"),g=f==="show",h=f==="hide",i=b.size||15,j=/([0-9]+)%/.exec(i),k=!!b.horizFirst,l=g!=k,m=l?["width","height"]:["height","width"],n=b.duration/2,o,p,q={},r={};a.effects.save(d,e),d.show(),o=a.effects.createWrapper(d).css({overflow:"hidden"}),p=l?[o.width(),o.height()]:[o.height(),o.width()],j&&(i=parseInt(j[1],10)/100*p[h?0:1]),g&&o.css(k?{height:0,width:i}:{height:i,width:0}),q[m[0]]=g?p[0]:i,r[m[1]]=g?p[1]:0,o.animate(q,n,b.easing).animate(r,n,b.easing,function(){h&&d.hide(),a.effects.restore(d,e),a.effects.removeWrapper(d),c()})}}(jQuery),function(a,b){a.effects.effect.highlight=function(b,c){var d=a(this),e=["backgroundImage","backgroundColor","opacity"],f= +a.effects.setMode(d,b.mode||"show"),g={backgroundColor:d.css("backgroundColor")};f==="hide"&&(g.opacity=0),a.effects.save(d,e),d.show().css({backgroundImage:"none",backgroundColor:b.color||"#ffff99"}).animate(g,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){f==="hide"&&d.hide(),a.effects.restore(d,e),c()}})}}(jQuery),function(a,b){a.effects.effect.pulsate=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"show"),f=e==="show",g=e==="hide",h=f||e==="hide",i=(b.times||5)*2+(h?1:0),j=b.duration/i,k=0,l=d.queue(),m=l.length,n;if(f||!d.is(":visible"))d.css("opacity",0).show(),k=1;for(n=1;n1&&l.splice.apply(l,[1,0].concat(l.splice(m,i+1))),d.dequeue()}}(jQuery),function(a,b){a.effects.effect.puff=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"hide"),f=e==="hide",g=parseInt(b.percent,10)||150,h=g/100,i={height:d.height(),width:d.width()};a.extend(b,{effect:"scale",queue:!1,fade:!0,mode:e,complete:c,percent:f?g:100,from:f?i:{height:i.height*h,width:i.width*h}}),d.effect(b)},a.effects.effect.scale=function(b,c){var d=a(this),e=a.extend(!0,{},b),f=a.effects.setMode(d,b.mode||"effect"),g=parseInt(b.percent,10)||(parseInt(b.percent,10)==0?0:f=="hide"?0:100),h=b.direction||"both",i=b.origin,j={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()},k={y:h!="horizontal"?g/100:1,x:h!="vertical"?g/100:1};e.effect="size",e.queue=!1,e.complete=c,f!="effect"&&(e.origin=i||["middle","center"],e.restore=!0),e.from=b.from||(f=="show"?{height:0,width:0}:j),e.to={height:j.height*k.y,width:j.width*k.x,outerHeight:j.outerHeight*k.y,outerWidth:j.outerWidth*k.x},e.fade&&(f=="show"&&(e.from.opacity=0,e.to.opacity=1),f=="hide"&&(e.from.opacity=1,e.to.opacity=0)),d.effect(e)},a.effects.effect.size=function(b,c){var d=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],f=["position","top","bottom","left","right","overflow","opacity"],g=["width","height","overflow"],h=["fontSize"],i=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],j=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],k=a.effects.setMode(d,b.mode||"effect"),l=b.restore||k!=="effect",m=b.scale||"both",n=b.origin||["middle","center"],o,p,q,r=d.css("position");k==="show"&&d.show(),o={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()},d.from=b.from||o,d.to=b.to||o,q={from:{y:d.from.height/o.height,x:d.from.width/o.width},to:{y:d.to.height/o.height,x:d.to.width/o.width}};if(m=="box"||m=="both")q.from.y!==q.to.y&&(e=e.concat(i),d.from=a.effects.setTransition(d,i,q.from.y,d.from),d.to=a.effects.setTransition(d,i,q.to.y,d.to)),q.from.x!==q.to.x&&(e=e.concat(j),d.from=a.effects.setTransition(d,j,q.from.x,d.from),d.to=a.effects.setTransition(d,j,q.to.x,d.to));(m=="content"||m=="both")&&q.from.y!==q.to.y&&(e=e.concat(h),d.from=a.effects.setTransition(d,h,q.from.y,d.from),d.to=a.effects.setTransition(d,h,q.to.y,d.to)),a.effects.save(d,l?e:f),d.show(),a.effects.createWrapper(d),d.css("overflow","hidden").css(d.from),n&&(p=a.effects.getBaseline(n,o),d.from.top=(o.outerHeight-d.outerHeight())*p.y,d.from.left=(o.outerWidth-d.outerWidth())*p.x,d.to.top=(o.outerHeight-d.to.outerHeight)*p.y,d.to.left=(o.outerWidth-d.to.outerWidth)*p.x),d.css(d.from);if(m=="content"||m=="both")i=i.concat(["marginTop","marginBottom"]).concat(h),j=j.concat(["marginLeft","marginRight"]),g=e.concat(i).concat(j),d.find("*[width]").each(function(){var c=a(this),d={height:c.height(),width:c.width()};l&&a.effects.save(c,g),c.from={height:d.height*q.from.y,width:d.width*q.from.x},c.to={height:d.height*q.to.y,width:d.width*q.to.x},q.from.y!=q.to.y&&(c.from=a.effects.setTransition(c,i,q.from.y,c.from),c.to=a.effects.setTransition(c,i,q.to.y,c.to)),q.from.x!=q.to.x&&(c.from=a.effects.setTransition(c,j,q.from.x,c.from),c.to=a.effects.setTransition(c,j,q.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.easing,function(){l&&a.effects.restore(c,g)})});d.animate(d.to,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){d.to.opacity===0&&d.css("opacity",d.from.opacity),k=="hide"&&d.hide(),a.effects.restore(d,l?e:f),l||(r==="static"?d.css({position:"relative",top:d.to.top,left:d.to.left}):a.each(["top","left"],function(a,b){d.css(b,function(c,e){var f=parseInt(e,10),g=a?d.to.left:d.to.top,h=a?d.to.outerWidth-d.from.outerWidth:d.to.outerHeight-d.from.outerHeight,i=n[a]===b,j=n[a]==="middle"||n[a]==="center";if(e==="auto")return g+"px";return f+g+"px"})})),a.effects.removeWrapper(d),c()}})}}(jQuery),function(a,b){a.effects.effect.shake=function(b,c){var d=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(d,b.mode||"effect"),g=b.direction||"left",h=b.distance||20,i=b.times||3,j=i*2+1,k=b.duration,l=g=="up"||g=="down"?"top":"left",m=g=="up"||g=="left",n={},o={},p={},q,r=d.queue(),s=r.length;a.effects.save(d,e),d.show(),a.effects.createWrapper(d),n[l]=(m?"-=":"+=")+h,o[l]=(m?"+=":"-=")+h*2,p[l]=(m?"-=":"+=")+h*2,d.animate(n,k,b.easing);for(q=1;q1&&r.splice.apply(r,[1,0].concat(r.splice(s,j+1))),d.dequeue()}}(jQuery),function(a,b){a.effects.effect.slide=function(b,c){var d=a(this),e=["position","top","bottom","left","right","width","height"],f=a.effects.setMode(d,b.mode||"show"),g=f==="show",h=b.direction||"left",i=h=="up"||h=="down"?"top":"left",j=h=="up"||h=="left",k,l={},m;a.effects.save(d,e),d.show(),k=b.distance||d[i==="top"?"outerHeight":"outerWidth"]({margin:!0}),a.effects.createWrapper(d).css({overflow:"hidden"}),g&&d.css(i,j?isNaN(k)?"-"+k:-k:k),l[i]=(g?j?"+=":"-=":j?"-=":"+=")+k,d.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){f==="hide"&&d.hide(),a.effects.restore(d,e),a.effects.removeWrapper(d),c()}})}}(jQuery),function(a,b){a.effects.effect.transfer=function(b,c){var d=a(this),e=a(b.to),f=e.css("position")==="fixed",g=a("body"),h=f?g.scrollTop():0,i=f?g.scrollLeft():0,j=e.offset(),k={top:j.top-h,left:j.left-i,height:e.innerHeight(),width:e.innerWidth()},l=d.offset(),m=a('
    ').appendTo(document.body).addClass(b.className).css({top:l.top-h,left:l.left-i,height:d.innerHeight(),width:d.innerWidth(),position:f?"fixed":"absolute"}).animate(k,b.duration,b.easing,function(){m.remove(),c()})}}(jQuery),function(a,b){a.widget("ui.accordion",{version:"@VERSION",options:{active:0,animated:"slide",collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var b=this,c=b.options;b.lastToggle={},b.element.addClass("ui-accordion ui-widget ui-helper-reset"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),b._hoverable(b.headers),b._focusable(b.headers),b.headers.find(":first-child").addClass("ui-accordion-heading"),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"),!c.collapsible&&c.active===!1&&(c.active=0),c.active<0&&(c.active+=this.headers.length),b.active=b._findActive(c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.refresh(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",a.proxy(b,"_keydown")).next().attr("role","tabpanel"),b.headers.not(b.active).attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),this._setupEvents(c.event)},_createIcons:function(){var b=this.options.icons;b&&(a("").addClass("ui-accordion-header-icon ui-icon "+b.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(b.header).addClass(b.activeHeader),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-accordion-header-icon").remove(),this.element.removeClass("ui-accordion-icons")},_destroy:function(){this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex").find("a").removeAttr("tabIndex").end().find(".ui-accordion-heading").removeClass("ui-accordion-heading"),this._destroyIcons();var a=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");this.options.heightStyle!=="content"&&a.css("height","")},_setOption:function(a,b){a==="active"?this._activate(b):(a==="event"&&(this.options.event&&this.headers.unbind(this.options.event+".accordion",this._eventHandler),this._setupEvents(b)),this._super(a,b),a==="collapsible"&&!b&&this.options.active===!1&&this._activate(0),a==="icons"&&(this._destroyIcons(),b&&this._createIcons()),a==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-accordion-disabled ui-state-disabled",!!b))},_keydown:function(b){if(!(this.options.disabled||b.altKey||b.ctrlKey)){var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._eventHandler(b)}f&&(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),b.preventDefault())}},refresh:function(){var b=this.options,c=this.element.parent(),d,e;b.heightStyle==="fill"?(a.support.minHeight||(e=c.css("overflow"),c.css("overflow","hidden")),d=c.height(),this.element.siblings(":visible").each(function(){var b=a(this),c=b.css("position");c!=="absolute"&&c!=="fixed"&&(d-=b.outerHeight(!0))}),e&&c.css("overflow",e),this.headers.each(function(){d-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,d-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")):b.heightStyle==="auto"&&(d=0,this.headers.next().each(function(){d=Math.max(d,a(this).height("").height())}).height(d));return this},_activate:function(b){var c=this._findActive(b)[0];c!==this.active[0]&&(c=c||this.active[0],this._eventHandler({target:c,currentTarget:c,preventDefault:a.noop}))},_findActive:function(b){return typeof b=="number"?this.headers.eq(b):a()},_setupEvents:function(b){b&&this.headers.bind(b.split(" ").join(".accordion ")+".accordion",a.proxy(this,"_eventHandler"))},_eventHandler:function(b){var c=this.options,d=this.active,e=a(b.currentTarget),f=e[0]===d[0],g=f&&c.collapsible,h=g?a():e.next(),i=d.next(),j={oldHeader:d,oldContent:i,newHeader:g?a():e,newContent:h};b.preventDefault();c.disabled||f&&!c.collapsible||this._trigger("beforeActivate",b,j)===!1||(c.active=g?!1:this.headers.index(e),this.active=f?a():e,this._toggle(j),d.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header),f||(e.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader),e.next().addClass("ui-accordion-content-active")))},_toggle:function(b){function g(){c._completed(b)}var c=this,d=c.options,e=b.newContent,f=b.oldContent;if(d.animated){var h=a.ui.accordion.animations,i=d.animated,j;h[i]||(j={easing:a.easing[i]?i:"slide",duration:700},i="slide"),h[i]({widget:c,toShow:e,toHide:f,prevShow:c.lastToggle.toShow,prevHide:c.lastToggle.toHide,complete:g,down:e.length&&(!f.length||e.index()",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var b=this,c,d,e;this.isMultiLine=this.element.is("textarea,[contenteditable]"),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(f){if(b.options.disabled||b.element.prop("readOnly"))c=!0,e=!0,d=!0;else{c=!1,e=!1,d=!1;var g=a.ui.keyCode;switch(f.keyCode){case g.PAGE_UP:c=!0,b._move("previousPage",f);break;case g.PAGE_DOWN:c=!0,b._move("nextPage",f);break;case g.UP:c=!0,b._keyEvent("previous",f);break;case g.DOWN:c=!0,b._keyEvent("next",f);break;case g.ENTER:case g.NUMPAD_ENTER:b.menu.active&&(c=!0,f.preventDefault());case g.TAB:if(!b.menu.active)return;b.menu.select(f);break;case g.ESCAPE:b.menu.element.is(":visible")&&(b._value(b.term),b.close(f));break;default:d=!0,b._searchTimeout(f)}}}).bind("keypress.autocomplete",function(e){if(c)c=!1,e.preventDefault();else{if(d)return;var f=a.ui.keyCode;switch(e.keyCode){case f.PAGE_UP:b._move("previousPage",e);break;case f.PAGE_DOWN:b._move("nextPage",e);break;case f.UP:b._keyEvent("previous",e);break;case f.DOWN:b._keyEvent("next",e)}}}).bind("input.autocomplete",function(a){e?(e=!1,a.preventDefault()):b._searchTimeout(a)}).bind("focus.autocomplete",function(){b.options.disabled||(b.selectedItem=null,b.previous=b._value())}).bind("blur.autocomplete",function(a){b.options.disabled||(clearTimeout(b.searching),b.cancelSearch=!0,b.closing=setTimeout(function(){b.close(a),b._change(a)},150))}),this._initSource(),this.response=function(){return b._response.apply(b,arguments)},this.menu=a("
      ").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo||"body")[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){b.document.one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({input:a(),focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b._value(d.value)},select:function(a,c){var d=c.item.data("item.autocomplete"),e=b.previous;b.element[0]!==b.document[0].activeElement&&(b.element.focus(),b.previous=e,setTimeout(function(){b.previous=e,b.selectedItem=d},1)),!1!==b._trigger("select",a,{item:d})&&b._value(d.value),b.term=b._value(),b.close(a),b.selectedItem=d}}).zIndex(this.element.zIndex()+1).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),this._bind(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove()},_setOption:function(a,b){this._super(a,b),a==="source"&&this._initSource(),a==="appendTo"&&this.menu.element.appendTo(this.document.find(b||"body")[0]),a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,d,e;a.isArray(this.options.source)?(d=this.options.source,this.source=function(b,c){c(a.ui.autocomplete.filter(d,b.term))}):typeof this.options.source=="string"?(e=this.options.source,this.source=function(d,f){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:e,data:d,dataType:"json",autocompleteRequest:++c,success:function(a,b){this.autocompleteRequest===c&&f(a)},error:function(){this.autocompleteRequest===c&&f([])}})}):this.source=this.options.source},_searchTimeout:function(a){var b=this;clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!==b._value()&&(b.selectedItem=null,b.search(null,a))},b.options.delay)},search:function(a,b){a=a!=null?a:this._value(),this.term=this._value();if(a.length").data("item.autocomplete",c).append(a("").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible"))this.search(null,b);else{if(this.menu.isFirstItem()&&/^previous/.test(a)||this.menu.isLastItem()&&/^next/.test(a)){this._value(this.term),this.menu.blur();return}this.menu[a](b)}},widget:function(){return this.menu.element},_value:function(a){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})}(jQuery),function(a,b){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);c&&(d?e=a(d).find("[name='"+c+"']"):e=a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form}));return e};a.widget("ui.button",{version:"@VERSION",defaultElement:"').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){$.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._showDatepicker(a[0]);return!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block"))},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f);return this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})}},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!!b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(a){$.datepicker.log(a)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if(!$.datepicker._isDisabledDatepicker(a)&&$.datepicker._lastInput!=a){var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){e|=$(this).css("position")=="fixed";return!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&($.effects.effect[g]||$.effects[g])?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0);return b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=$.data(a,PROP_NAME))&&this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=this,f=function(){$.datepicker._tidyDialog(b),e._curInst=null};$.effects&&($.effects.effect[c]||$.effects[c])?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,f):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,f),c||f(),this._datepickerShowing=!1;var g=this._get(b,"onClose");g&&g.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!!$.datepicker._curInst){var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);this._isDisabledDatepicker(d[0])||(this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e))},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if(!$(d).hasClass(this._unselectableClass)&&!this._isDisabledDatepicker(e[0])){var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();b.setMonth(0),b.setDate(1);return Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;for(;;){var v=this._getDaysInMonth(i,j-1);if(k<=v)break;j++,k-=v}}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
      '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
      ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
      '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
      '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
      '+this._get(a,"weekHeader")+"
      '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
      "+(j?"
      "+(g[0]>0&&N==g[1]-1?'
      ':""):""),M+=Q}K+=M}K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1;return K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
      ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
      ";return l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e;return e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth()));return this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth +,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)})},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="@VERSION",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{version:"@VERSION",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
      ")).addClass(c+d.dialogClass).css({display:"none",outline:0,zIndex:d.zIndex}).attr("tabIndex",-1).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}).appendTo("body"),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(a){a.preventDefault(),b.close(a)}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);i.find("*").add(i).disableSelection(),this._hoverable(j),this._focusable(j),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var a=this,b,c=this.oldPosition;a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),b=c.parent.children().eq(c.index),b.length?b.before(a.element):c.parent.append(a.element)},widget:function(){return this.uiDialog},close:function(b){if(!this._isOpen)return c;var c=this,d,e;if(!1!==c._trigger("beforeClose",b)){c._isOpen=!1,c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d);return c}},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;if(e.modal&&!b||!e.stack&&!e.modal)return d._trigger("focus",c);e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c);return d},open:function(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;b._size(),b._position(c.position),d.show(c.show),b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey){d.focus(1);return!1}if(b.target===d[0]&&b.shiftKey){e.focus(1);return!1}}});var e=b.element.find(":tabbable");e.length||(e=d.find(".ui-dialog-buttonpane :tabbable"),e.length||(e=d)),e.eq(0).focus(),b._isOpen=!0,b._trigger("open");return b}},_createButtons:function(b){var c=this,d=!1;c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)});if(d){var e=a("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("
      ").addClass("ui-dialog-buttonset").appendTo(e);a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a("

      + + + + +
      1def listSum(numbers):
      2  if not numbers:
      3    return 0
      4  else:
      5    (f, rest) = numbers
      6    return f + listSum(rest)
      7
      8myList = (1, (2, (3, None)))
      9total = listSum(myList)
      Step 15 of 18
      line that has just executed

      next line to execute

      Program output:
      Frames
      Global variables
      listSum
       
      myList
       
      listSum
      numbers
       
      f1
      rest
       
      listSum
      numbers
       
      f2
      rest
       
      listSum
      numbers
       
      f3
      restNone
      listSum
      numbersNone
      Return
      value
      0
      Objects
      function listSum(numbers)
      tuple
      01
      1
       
      tuple
      01
      2
       
      tuple
      01
      3None
      + + + diff --git a/v3/commentary-bubbles-demo.js b/v3/commentary-bubbles-demo.js new file mode 100644 index 000000000..edace49e0 --- /dev/null +++ b/v3/commentary-bubbles-demo.js @@ -0,0 +1,418 @@ +// Run: +// python generate_json_trace.py --create_jsvar=listSumTrace tests/backend-tests/list_sum.txt +// and copy-and-paste the output line into here: +var listSumTrace = {"code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["listSum"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"__return__": 0, "numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"__return__": 3, "numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"__return__": 5, "numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": 6, "numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList", "total"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"total": 6, "myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "return"}]}; + + +var qtipShared = { + show: { + ready: true, // show on document.ready instead of on mouseenter + delay: 0, + event: null, + effect: function() {$(this).show();}, // don't do any fancy fading because it screws up with scrolling + }, + hide: { + fixed: true, + event: null, + effect: function() {$(this).hide();}, // don't do any fancy fading because it screws up with scrolling + }, + style: { + classes: 'ui-tooltip-pgbootstrap', // my own customized version of the bootstrap style + }, +}; + + +function createSpeechBubble(domID, my, at, htmlContent, isInput) { + var hashID = '#' + domID; + $(hashID).qtip($.extend({}, qtipShared, { + content: htmlContent, + id: domID, + position: { + my: my, + at: at, + effect: null, // disable all cutesy animations + }, + })); + + + if (isInput) { + + } + else { + $('#ui-tooltip-' + domID + '-content').click(function() { + if (!$(hashID).data('qtip-minimized')) { + $(hashID) + .data('qtip-minimized', true) + .qtip('option', 'content.text', ' '); + } + else { + $(hashID) + .data('qtip-minimized', false) + .qtip('option', 'content.text', htmlContent); + } + }); + } +} + + +// a speech bubble annotation to attach to: +// 'codeline' - a line of code +// 'frame' - a stack frame +// 'variable' - a variable within a stack frame +// 'object' - an object on the heap +// (as determined by the 'type' param) +// +// domID is the ID of the element to attach to (without the leading '#' sign) +function AnnotationBubble(type, domID) { + this.domID = domID; + this.hashID = '#' + domID; + + this.type = type; + + if (type == 'codeline') { + this.my = 'left center'; + this.at = 'right center'; + } + else if (type == 'frame') { + this.my = 'right center'; + this.at = 'left center'; + } + else if (type == 'variable') { + this.my = 'right center'; + this.at = 'left center'; + } + else if (type == 'object') { + this.my = 'bottom left'; + this.at = 'top center'; + } + else { + assert(false); + } + + // possible states: + // 'invisible' + // 'edit' + // 'view' + // 'minimized' + // 'stub' + this.state = 'invisible'; + + this.text = ''; // the actual contents of the annotation bubble + + this.qtipHidden = false; // is there a qtip object present but hidden? (TODO: kinda confusing) +} + +AnnotationBubble.prototype.showStub = function() { + assert(this.state == 'invisible' || this.state == 'edit'); + assert(this.text == ''); + + var myBubble = this; // to avoid name clashes with 'this' in inner scopes + + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: ' ', + id: this.domID, + position: { + my: this.my, + at: this.at, + effect: null, // disable all cutesy animations + }, + style: { + classes: 'ui-tooltip-pgbootstrap ui-tooltip-pgbootstrap-stub' + } + })); + + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + myBubble.showEditor(); + }); + + this.state = 'stub'; +} + +AnnotationBubble.prototype.showEditor = function() { + assert(this.state == 'stub' || this.state == 'view' || this.state == 'minimized'); + + var myBubble = this; // to avoid name clashes with 'this' in inner scopes + + var ta = ''; + + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: ta, + id: this.domID, + position: { + my: this.my, + at: this.at, + effect: null, // disable all cutesy animations + } + })); + + + $(this.qTipContentID()).find('textarea.bubbleInputText') + // set handler when the textarea loses focus + .blur(function() { + myBubble.text = $(this).val().trim(); // strip all leading and trailing spaces + + if (myBubble.text) { + myBubble.showViewer(); + } + else { + myBubble.showStub(); + } + }) + .focus(); // grab focus so that the user can start typing right away! + + this.state = 'edit'; +} + + +AnnotationBubble.prototype.bindViewerClickHandler = function() { + var myBubble = this; + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + if (globalAnnotationMode == 'edit') { + myBubble.showEditor(); + } + else if (globalAnnotationMode == 'view') { + myBubble.minimizeViewer(); + } + else { + assert(false); + } + }); +} + +AnnotationBubble.prototype.showViewer = function() { + assert(this.state == 'edit'); + assert(this.text); // must be non-empty! + + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: this.text, + id: this.domID, + position: { + my: this.my, + at: this.at, + effect: null, // disable all cutesy animations + } + })); + + this.bindViewerClickHandler(); + this.state = 'view'; +} + + +AnnotationBubble.prototype.minimizeViewer = function() { + assert(this.state == 'view'); + + var myBubble = this; + + $(this.hashID).qtip('option', 'content.text', ' '); //hack to "minimize" its size + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + if (globalAnnotationMode == 'edit') { + myBubble.showEditor(); + } + else if (globalAnnotationMode == 'view') { + myBubble.restoreViewer(); + } + else { + assert(false); + } + }); + + this.state = 'minimized'; +} + +AnnotationBubble.prototype.restoreViewer = function() { + assert(this.state == 'minimized'); + $(this.hashID).qtip('option', 'content.text', this.text); + this.bindViewerClickHandler(); + this.state = 'view'; +} + +// NB: actually DESTROYS the QTip object +AnnotationBubble.prototype.makeInvisible = function() { + assert(this.state == 'stub' || this.state == 'edit'); + this.destroyQTip(); + this.state = 'invisible'; +} + + +AnnotationBubble.prototype.destroyQTip = function() { + $(this.hashID).qtip('destroy'); +} + +AnnotationBubble.prototype.qTipContentID = function() { + return '#ui-tooltip-' + this.domID + '-content'; +} + +AnnotationBubble.prototype.qTipID = function() { + return '#ui-tooltip-' + this.domID; +} + + +AnnotationBubble.prototype.enterEditMode = function() { + assert(globalAnnotationMode == 'edit'); + if (this.state == 'invisible') { + this.showStub(); + + if (this.type == 'codeline') { + this.redrawCodelineBubble(); + } + } +} + +AnnotationBubble.prototype.enterViewMode = function() { + assert(globalAnnotationMode == 'view'); + if (this.state == 'stub') { + this.makeInvisible(); + } + else if (this.state == 'edit') { + this.text = $(this.qTipContentID()).find('textarea.bubbleInputText').val().trim(); // strip all leading and trailing spaces + + if (this.text) { + this.showViewer(); + + if (this.type == 'codeline') { + this.redrawCodelineBubble(); + } + } + else { + this.makeInvisible(); + } + } +} + +AnnotationBubble.prototype.redrawCodelineBubble = function() { + assert(this.type == 'codeline'); + + if (isOutputLineVisible(this.domID)) { + if (this.qtipHidden) { + $(this.hashID).qtip('show'); + } + else { + $(this.hashID).qtip('reposition'); + } + + this.qtipHidden = false; + } + else { + $(this.hashID).qtip('hide'); + this.qtipHidden = true; + } +} + + +globalAnnotationMode = 'view'; +allBubbles = []; + + +// returns True iff lineNo is visible in pyCodeOutputDiv +// NB: copied, pasted, and modified from isOutputLineVisible in js/pytutor.js +function isOutputLineVisible(lineDivID) { + var pcod = $('#pyCodeOutputDiv'); + + var lineNoTd = $('#' + lineDivID); + var LO = lineNoTd.offset().top; + + var PO = pcod.offset().top; + var ST = pcod.scrollTop(); + var H = pcod.height(); + + // add a few pixels of fudge factor on the bottom end due to bottom scrollbar + return (PO <= LO) && (LO < (PO + H - 25)); +} + + +$(document).ready(function() { + /* + var listSumVisualizer = new ExecutionVisualizer('listSumDiv', listSumTrace, + {embeddedMode: false, + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); + + return; + */ + + // force vertical code scrolling + $('#pyCodeOutputDiv').css('max-height', '120px'); + + allBubbles.push(new AnnotationBubble('frame', 'v1__globals')); + allBubbles.push(new AnnotationBubble('frame', 'v1__stack0')); + allBubbles.push(new AnnotationBubble('frame', 'v1__stack1')); + allBubbles.push(new AnnotationBubble('frame', 'v1__stack2')); + allBubbles.push(new AnnotationBubble('frame', 'v1__stack3')); + + allBubbles.push(new AnnotationBubble('object', 'v1__heap_object_1')); + allBubbles.push(new AnnotationBubble('object', 'v1__heap_object_2')); + allBubbles.push(new AnnotationBubble('object', 'v1__heap_object_3')); + allBubbles.push(new AnnotationBubble('object', 'v1__heap_object_4')); + + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod1')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod2')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod3')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod4')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod5')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod6')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod7')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod8')); + allBubbles.push(new AnnotationBubble('codeline', 'v1__cod9')); + + allBubbles.push(new AnnotationBubble('variable', 'v1__global__listSum_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__global__myList_tr')); + + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f1__numbers_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f1__f_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f1__rest_tr')); + + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f2__numbers_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f2__f_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f2__rest_tr')); + + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f3__numbers_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f3__f_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f3__rest_tr')); + + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f4__numbers_tr')); + allBubbles.push(new AnnotationBubble('variable', 'v1__listSum_f4____return___tr')); + + + $('#pyCodeOutputDiv').scroll(function() { + $.each(allBubbles, function(i, e) { + if (e.type == 'codeline') { + e.redrawCodelineBubble(); + } + }); + }); + + + $('#modeToggleBtn').click(function() { + if (globalAnnotationMode == 'view') { + $('#modeToggleBtn').html('View Annotations'); + globalAnnotationMode = 'edit'; + $.each(allBubbles, function(i, e) { + e.enterEditMode(); + }); + } + else if (globalAnnotationMode == 'edit') { + $('#modeToggleBtn').html('Add/Edit Annotations'); + globalAnnotationMode = 'view'; + $.each(allBubbles, function(i, e) { + e.enterViewMode(); + }); + } + else { + assert(false); + } + }); +}); diff --git a/v3/composingprograms.html b/v3/composingprograms.html new file mode 100644 index 000000000..515b0e6df --- /dev/null +++ b/v3/composingprograms.html @@ -0,0 +1,149 @@ + + + + + + + Online Python Tutor - Visualize program execution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +Write your Python code here: +
      + +
      + +

      +Execute code using + +and + +

      + +

      + +

      + +
      + + +
      +
      + + + + + + diff --git a/v3/convert_2to3.py b/v3/convert_2to3.py new file mode 100644 index 000000000..d5fb41d69 --- /dev/null +++ b/v3/convert_2to3.py @@ -0,0 +1,90 @@ +# Convert project from Python 2 to Python 3 and test that JSON traces are +# unchanged for all examples. +# +# python3 convert_2to3.py +# +# Runs under Python 2.7 and Python 3.x without 2to3 conversion +# +# Created by John DeNero + +import generate_json_trace +import os +import sys +import json + + +def write_trace(python, example_path, output_path): + '''Use system call to generate a JSON trace using some python binary.''' + example = os.path.split(example_path)[1] + print('Generating JSON for "{0}" with {1}'.format(example, python)) + cmd = '{0} generate_json_trace.py {1} > {2}' + os.system(cmd.format(python, example_path, output_path)) + + +def write_py2_traces(examples_dir, traces_dir): + '''Write JSON traces for all examples using Python 2.7.''' + for path, _, filenames in os.walk(examples_dir): + for example in filenames: + example_path = os.path.join(path, example) + outfile = path.replace(os.path.sep, '_') + '_' + example + output_path = os.path.join(traces_dir, outfile) + write_trace('python2.7', example_path, output_path) + + +def verify_py3_traces(examples_dir, traces_dir): + '''Write and compare JSON traces for all examples using Python 3.''' + diffs = [] + for path, _, filenames in os.walk(examples_dir): + for example in filenames: + example_path = os.path.join(path, example) + outfile = path.replace(os.path.sep, '_') + '_' + example + output_path = os.path.join(traces_dir, outfile + '.py3k') + write_trace('python3', example_path, output_path) + + py2_path = os.path.join(traces_dir, outfile) + py2_result = json.load(open(py2_path)) + py3_result = json.load(open(output_path)) + if py2_result['trace'] != py3_result['trace']: + diffs.append(example) + return diffs + + +known_differences = """Known differences include: + +fib.txt: "while True:" is evaluated once in Python 3, but repeatedly in Python. + +map.txt: 2to3 converts call to map() to a list comprehension. + +OOP*.txt, ll2.txt: __init__ functions orphan a __locals__ dict on the heap in + Python 3, but it is not rendered in the front end. + +wentworth_try_finally.txt: Python 3 integer division is true, not floor. +""" + +if __name__ == '__main__': + examples_dir = 'example-code' + if not os.path.exists(examples_dir): + print('Examples directory {0} does not exist.'.format(examples_dir)) + sys.exit(1) + + traces_dir = examples_dir + '-traces' + if os.path.exists(traces_dir): + print('Testing directory {0} already exists.'.format(traces_dir)) + sys.exit(1) + os.mkdir(traces_dir) + + write_py2_traces(examples_dir, traces_dir) + + # Convert examples to Python 3 + os.system('2to3 -w -n --no-diffs {0}/*.txt {0}/*/*.txt'.format(examples_dir)) + + diffs = verify_py3_traces(examples_dir, traces_dir) + + if diffs: + print('Trace differences for: {0}'.format(diffs)) + print('See {0} for traces.'.format(traces_dir)) + print(known_differences) + else: + print('Traces are identical; cleaning up') + shutil.rm(traces_dir) + diff --git a/v3/create_log_db.py b/v3/create_log_db.py new file mode 100644 index 000000000..52e2f13f8 --- /dev/null +++ b/v3/create_log_db.py @@ -0,0 +1,27 @@ +# Setup sqlite database to support query logging from web_exec.py + +import os, sqlite3 + +DB_FILE = 'opt-query-log.sqlite3' + +def create_db(): + con = sqlite3.connect(DB_FILE) + cur = con.cursor() + + cur.execute('''CREATE TABLE query_log + (id INTEGER PRIMARY KEY, + timestamp TEXT, + ip_addr TEXT, + http_user_agent TEXT, + http_referer TEXT, + user_script TEXT, + cumulative_mode INTEGER)''') + con.commit() + cur.close() + + +if __name__ == "__main__": + assert not os.path.exists(DB_FILE) + create_db() + print('Created ' + DB_FILE) + diff --git a/v3/csc108h.html b/v3/csc108h.html new file mode 100644 index 000000000..66766e982 --- /dev/null +++ b/v3/csc108h.html @@ -0,0 +1,136 @@ + + + + + + + Online Python Tutor - Visualize program execution - csc108h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +Write your Python code here: +
      + +
      + +

      + +

      + +
      + + +
      +
      + + + + + + diff --git a/v3/css/2012-08-29-CSS-encapsulation/README b/v3/css/2012-08-29-CSS-encapsulation/README new file mode 100644 index 000000000..8d02a04dd --- /dev/null +++ b/v3/css/2012-08-29-CSS-encapsulation/README @@ -0,0 +1,69 @@ +From me: + +I just thought of a possible solution for those nasty CSS clashes that +you guys are encountering: + +I could prefix all of my python tutor CSS rules with something like +div.ExecutionVisualizer. e.g., + +div.ExecutionVisualizer table td { + ... blah blah ... +} + +and then when the user creates an ExecutionVisualizer object with +JavaScript and passes it a div, I use JavaScript to set its class to +"ExecutionVisualizer". + +Thoughts? + + +--- +From John: + +That's a good idea. It would also be great to establish two different +top-level div classes: one for embedded and one for stand-alone +visualizers. Embedded visualizers typically need to be more densely +laid out, otherwise they eat up the entire page. You can see my css +changes for embedding in the master branch of my fork. + +https://github.com/papajohn/OnlinePythonTutor/blob/master/PyTutorGAE/css/pytutor.css +[downloaded as papajohn-pytutor.css] + +Ideally, I'd add the option of creating an embedded visualizer or a +stand-alone one on construction, and each would be allowed to have +different styles but mostly share the same styles. + + +--- +From Sean: + +Philip, just wondering, could you just make a new container div with the +right class, and stick it into the div passed to your code? This might +be easier than fiddling with the class on the div the user gives, and +I'm also wondering whether there could be unforeseen interactions with +other classes that might have been prespecified on that div. I don't +know what the downsides of the new approach are, though. + +--- +My thoughts: + +- maybe just have a set of css styles for a standalone visualizer, and + then add an option or something to flip a bit to make it embedded ... + if the visualizer is embedded, then use js to set css for certain + attributes + +--- +2012-08-29 email from me to John and Sean: + +Gentlemen - + +I just pushed some changes that implemented: + +- Sean's suggestion of creating a div.ExecutionVisualizer within the root DOM node passed into a new ExecutionVisualizer object, +- prefixing of all CSS rules by div.ExecutionVisualizer +- some of John's modified CSS + +Hopefully CSS clashes are less of a problem from now on. + +However, I still didn't implement John's suggestion for an "embedded CSS mode" yet; right now the best thing to do is to either tweak the CSS manually or to write javascript to dynamically modify the CSS. + diff --git a/v3/css/2012-08-29-CSS-encapsulation/papajohn-pytutor.css b/v3/css/2012-08-29-CSS-encapsulation/papajohn-pytutor.css new file mode 100644 index 000000000..87a5607dc --- /dev/null +++ b/v3/css/2012-08-29-CSS-encapsulation/papajohn-pytutor.css @@ -0,0 +1,487 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + +/* Most recent color scheme redesign: 2012-08-19 */ + +table.visualizer { + font-family: Helvetica, sans-serif; + font-size: 10pt; +} + + +td#stack_td, +td#heap_td { + vertical-align:top; + font-size: 10pt; /* don't make fonts in the heap so big! */ +} + +#dataViz { + margin-left: 30px; +} + +table.frameDataViz { + border-spacing: 0px; + font-size: 12pt; + margin-top: 5px; + margin-left: 15px; + background-color: #dddddd; + padding: 5px; +} + +table.frameDataViz td.varname { + text-align: right; + padding: 5px; + padding-right: 8px; + border-right: 1px dashed #888888; +} + +table.frameDataViz td.val { + padding-left: 8px; + padding-right: 5px; + + padding-top: 8px; + padding-bottom: 8px; +} + +div#pyCodeOutputDiv { + max-width: 550px; + max-height: 450px; + overflow: auto; +} + +table#pyCodeOutput { + font-family: Andale mono, monospace; + font-size: 11pt; + line-height: 1.1em; + border-spacing: 0px; + border-top: 1px solid #999999; + padding-top: 3px; + border-bottom: 1px solid #999999; + margin: 6px auto; /* Center code in its pane */ +} + +/* don't wrap lines within code output ... FORCE scrollbars to appear */ +table#pyCodeOutput td { + white-space: nowrap; +} + +table#pyCodeOutput .lineNo { + background-color:#FFFFFF; + color:#AAAAAA; + margin:0; + padding:0.2em; + padding-right:0.5em; + text-align:right; + width:2.1em; +} + +table#pyCodeOutput .cod { + /*font-weight: bold;*/ + margin-left: 3px; + padding-left: 7px; + text-align: left; /* necessary or else doesn't work properly in IE */ +} + +div#editCodeLinkDiv { + text-align: center; + margin: 12px auto; +} + +#editCodeLinkOnError { + color: #142B69; + font-size: 9px; +} + +#errorOutput { + color: #d03939; + /*background-color: #F87D76;*/ + font-size: 12pt; + padding: 2px; + line-height: 1.5em; + margin-bottom: 4px; +} + +button.bigBtn { + font-size: 12pt; + padding: 5px; +} + +button.medBtn { + font-size: 12pt; + padding: 3px; +} + + +/* VCR control buttons for stepping through execution */ + +#vcrControls { + margin: 15px auto; + width: 100%; + text-align: center; +} + +#vcrControls button { + margin-left: 5px; + margin-right: 5px; +} + +#pyStdout { + border: 1px solid #999999; + font-size: 12pt; + padding: 4px; + font-family: Andale mono, monospace; +} + +.vizFrame { + margin-bottom: 20px; + padding-left: 8px; + border-left: 2px solid #cccccc; +} + + +/* Rendering of primitive types */ + +.nullObj { + font-size: 8pt; +} + +/* +.numberObj { + font-size: 10pt; +} + +.boolObj { + font-size: 10pt; +} +*/ + +.stringObj, .customObj, .funcObj { + font-family: Andale mono, monospace; + white-space: nowrap; +} + +.retval { + font-size: 9pt; +} + + +/* Rendering of basic compound types */ + +table.listTbl, table.tupleTbl, table.setTbl { + background-color: #ffffc6; +} + + +table.listTbl { + border: 0px solid black; + border-spacing: 0px; +} + +table.listTbl td.listHeader, +table.tupleTbl td.tupleHeader { + padding-left: 4px; + padding-top: 2px; + padding-bottom: 3px; + font-size: 8pt; + color: #777; + text-align: left; + border-left: 1px solid #555555; +} + +table.tupleTbl { + border-spacing: 0px; + color: black; + + border-bottom: 1px solid #555555; /* must match td.tupleHeader border */ + border-top: 1px solid #555555; /* must match td.tupleHeader border */ + border-right: 1px solid #555555; /* must match td.tupleHeader border */ +} + + +table.listTbl td.listElt { + border-bottom: 1px solid #555555; /* must match td.listHeader border */ + border-left: 1px solid #555555; /* must match td.listHeader border */ +} + +table.tupleTbl td.tupleElt { + border-left: 1px solid #555555; /* must match td.tupleHeader border */ +} + +table.customObjTbl { + background-color: white; + color: black; + border: 1px solid black; +} + +table.customObjTbl td.customObjElt { + padding: 5px; +} + +table.listTbl td.listElt, +table.tupleTbl td.tupleElt { + padding-top: 0px; + padding-bottom: 8px; + padding-left: 10px; + padding-right: 10px; + vertical-align: bottom; +} + +table.setTbl { + border: 1px solid #555555; + border-spacing: 0px; + text-align: center; +} + +table.setTbl td.setElt { + padding: 8px; +} + + +table.dictTbl, +table.instTbl, +table.classTbl { + border-spacing: 1px; +} + +table.dictTbl td.dictKey, +table.instTbl td.instKey, +table.classTbl td.classKey { + background-color: #faebbf; +} + +table.dictTbl td.dictVal, +table.instTbl td.instVal, +table.classTbl td.classVal { + background-color: #ffffc6; +} + + +table.dictTbl td.dictKey, +table.instTbl td.instKey, +table.classTbl td.classKey { + padding-top: 12px /*15px*/; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 4px; + + text-align: right; +} + +table.dictTbl td.dictVal, +table.instTbl td.instVal, +table.classTbl td.classVal { + padding-top: 12px /*15px*/; + padding-bottom: 5px; + padding-right: 10px; + padding-left: 4px; +} + + +table.classTbl td, +table.instTbl td { + border-bottom: 1px #888 solid; +} + +table.classTbl td.classVal, +table.instTbl td.instVal { + border-left: 1px #888 solid; +} + +table.classTbl { + border-collapse: collapse; + border: 1px #888 solid; +} + +/* only add a border to dicts if they're embedded within another object */ +td.listElt table.dictTbl, +td.tupleElt table.dictTbl, +td.dictVal table.dictTbl, +td.instVal table.dictTbl, +td.classVal table.dictTbl { + border: 1px #888 solid; +} + + +.typeLabel { + font-size: 8pt; + color: #222222; + margin-bottom: 1px; +} + +#footer { + color: #666666; + font-size: 9pt; + border-top: 1px solid #bbbbbb; + padding-top: 5px; + margin-top: 5px; + + max-width: 700px; + /* center align */ + margin-left: auto; + margin-right: auto; +} + + +/* new stuff added for Online Python Tutor "2.0" release */ + +div#stack, div#globals_area { + padding-left: 10px; + padding-right: 30px; + + /* no longer necessary ... */ + /*float: left;*/ + /* border-right: 1px dashed #bbbbbb; */ +} + +div.stackFrame, div.zombieStackFrame { + background-color: #ffffff; + margin-bottom: 15px; + padding: 2px; + padding-left: 6px; + padding-right: 6px; + padding-bottom: 4px; + font-size: 10pt; +} + +div.zombieStackFrame { + border-left: 1px dotted #aaa; + /*color: #c0c0c0;*/ + color: #b0b0b0; +} + +div.highlightedStackFrame { + background-color: #c5dfea; +} + +div.stackFrame, div.highlightedStackFrame { + border-left: 2px solid #a6b3b6; +} + + +div.stackFrameHeader { + font-family: Andale mono, monospace; + font-size: 10pt; + margin-top: 4px; + margin-bottom: 3px; + white-space: nowrap; +} + +td.stackFrameVar { + text-align: right; + padding-right: 8px; + padding-top: 3px; + padding-bottom: 3px; +} + +td.stackFrameValue { + text-align: left; + border-bottom: 1px solid #aaaaaa; + border-left: 1px solid #aaaaaa; + + padding-top: 3px; + padding-left: 3px; + padding-bottom: 3px; +} + +.stackFrameVarTable tr { + +} + +.stackFrameVarTable { + text-align: right; + padding-top: 3px; + + /* right-align the table */ + margin-left: auto; + margin-right: 0px; +} + +div#heap { + float: left; + padding-left: 30px; +} + +td.toplevelHeapObject { + /* to make room for transition animations */ + padding-left: 8px; + padding-right: 8px; + padding-top: 4px; + padding-bottom: 4px; + border: 2px dotted white; + border-color: white; /* needed for d3 to do transitions */ +} + +table.heapRow { + margin-bottom: 10px; +} + +div.heapObject { + padding-left: 2px; /* leave a TINY amount of room for connector endpoints */ +} + +div#stackHeader { + margin-bottom: 15px; + text-align: right; +} + +div#heapHeader { + /*margin-top: 2px; + margin-bottom: 13px;*/ + margin-bottom: 15px; +} + +div#stackHeader, +div#heapHeader { + color: #333333; + font-size: 10pt; +} + +#executionSlider { + width: 300px; + margin: 6px auto; +} + +#executionSliderCaption { + font-size: 8pt; + color: #666666; + margin-top: 15px; +} + +#executionSliderFooter { + margin-top: -7px; /* make it butt up against #executionSlider */ +} + + +/* necessary for CodeMirror line highlighting to work! */ +.CodeMirror .errorLine { background: #F89D99 !important; } + + +/* darken slider handle a bit */ +.ui-slider .ui-slider-handle { + border: 1px solid #999; +} diff --git a/v3/css/basic.css b/v3/css/basic.css new file mode 100644 index 000000000..611807f58 --- /dev/null +++ b/v3/css/basic.css @@ -0,0 +1,61 @@ +/* + * SimpleModal Basic Modal Dialog + * http://www.ericmmartin.com/projects/simplemodal/ + * http://code.google.com/p/simplemodal/ + * + * Copyright (c) 2010 Eric Martin - http://ericmmartin.com + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * + * Revision: $Id: basic.css 257 2010-07-27 23:06:56Z emartin24 $ + */ + +.basic-modal-content {display:none;} + +/* Overlay */ +#simplemodal-overlay {background-color:#000; cursor:wait;} + +/* Container */ +.simplemodal-container { + height:200px; + width:300px; + color:#bbb; + background-color:#333; + border:4px solid #444; + padding:5px; +} + +.simplemodal-container .simplemodal-data {padding:8px;} + +.simplemodal-container code { + background:#141414; + border-left:3px solid #65B43D; + color:#bbb; + display:block; + font-size:12px; + margin-bottom:12px; + padding:4px 6px 6px; +} + +.simplemodal-container a {color:#ddd;} + +.simplemodal-container a.modalCloseImg { + background:url(x.png) no-repeat; + width:25px; + height:29px; + display:inline; + z-index:3200; + position:absolute; + top:-15px; + right:-16px; + cursor:pointer;} + +.simplemodal-container h3 { + color:#84b8d9; + text-align: center; +} + +.feedbacktext { + color:#84b8d9; +} diff --git a/v3/css/codemirror.css b/v3/css/codemirror.css new file mode 100644 index 000000000..f81d8df09 --- /dev/null +++ b/v3/css/codemirror.css @@ -0,0 +1,173 @@ +.CodeMirror { + line-height: 1.2em; /* pgbovine - enables underscore (_) characters to render properly */ + font-family: monospace; + + /* Necessary so the scrollbar can be absolutely positioned within the wrapper on Lion. */ + position: relative; + /* This prevents unwanted scrollbars from showing up on the body and wrapper in IE. */ + overflow: hidden; +} + +.CodeMirror-scroll { + overflow: auto; + height: 300px; + /* This is needed to prevent an IE[67] bug where the scrolled content + is visible outside of the scrolling box. */ + position: relative; + outline: none; +} + +/* Vertical scrollbar */ +.CodeMirror-scrollbar { + position: absolute; + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; + z-index: 5; +} +.CodeMirror-scrollbar-inner { + /* This needs to have a nonzero width in order for the scrollbar to appear + in Firefox and IE9. */ + width: 1px; +} +.CodeMirror-scrollbar.cm-sb-overlap { + /* Ensure that the scrollbar appears in Lion, and that it overlaps the content + rather than sitting to the right of it. */ + position: absolute; + z-index: 1; + float: none; + right: 0; + min-width: 12px; +} +.CodeMirror-scrollbar.cm-sb-nonoverlap { + min-width: 12px; +} +.CodeMirror-scrollbar.cm-sb-ie7 { + min-width: 18px; +} + +.CodeMirror-gutter { + position: absolute; left: 0; top: 0; + z-index: 10; + background-color: #f7f7f7; + border-right: 1px solid #eee; + min-width: 2em; + height: 100%; +} +.CodeMirror-gutter-text { + color: #aaa; + text-align: right; + padding: .4em .2em .4em .4em; + white-space: pre !important; + cursor: default; +} +.CodeMirror-lines { + padding: .4em; + white-space: pre; + cursor: text; +} + +.CodeMirror pre { + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + border-width: 0; margin: 0; padding: 0; background: transparent; + font-family: inherit; + font-size: inherit; + padding: 0; margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; +} + +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror textarea { + outline: none !important; +} + +.CodeMirror pre.CodeMirror-cursor { + z-index: 10; + position: absolute; + visibility: hidden; + border-left: 1px solid black; + border-right: none; + width: 0; +} +.cm-keymap-fat-cursor pre.CodeMirror-cursor { + width: auto; + border: 0; + background: transparent; + background: rgba(0, 200, 0, .4); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800); +} +/* Kludge to turn off filter in ie9+, which also accepts rgba */ +.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) { + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {} +.CodeMirror-focused pre.CodeMirror-cursor { + visibility: visible; +} + +div.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; } + +.CodeMirror-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* Default theme */ + +.cm-s-default span.cm-keyword {color: #708;} +.cm-s-default span.cm-atom {color: #219;} +.cm-s-default span.cm-number {color: #164;} +.cm-s-default span.cm-def {color: #00f;} +.cm-s-default span.cm-variable {color: black;} +.cm-s-default span.cm-variable-2 {color: #05a;} +.cm-s-default span.cm-variable-3 {color: #085;} +.cm-s-default span.cm-property {color: black;} +.cm-s-default span.cm-operator {color: black;} +.cm-s-default span.cm-comment {color: #a50;} +.cm-s-default span.cm-string {color: #a11;} +.cm-s-default span.cm-string-2 {color: #f50;} +.cm-s-default span.cm-meta {color: #555;} +.cm-s-default span.cm-error {color: #f00;} +.cm-s-default span.cm-qualifier {color: #555;} +.cm-s-default span.cm-builtin {color: #30a;} +.cm-s-default span.cm-bracket {color: #cc7;} +.cm-s-default span.cm-tag {color: #170;} +.cm-s-default span.cm-attribute {color: #00c;} +.cm-s-default span.cm-header {color: blue;} +.cm-s-default span.cm-quote {color: #090;} +.cm-s-default span.cm-hr {color: #999;} +.cm-s-default span.cm-link {color: #00c;} + +span.cm-header, span.cm-strong {font-weight: bold;} +span.cm-em {font-style: italic;} +span.cm-emstrong {font-style: italic; font-weight: bold;} +span.cm-link {text-decoration: underline;} + +span.cm-invalidchar {color: #f00;} + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} + +@media print { + + /* Hide the cursor when printing */ + .CodeMirror pre.CodeMirror-cursor { + visibility: hidden; + } + +} diff --git a/v3/css/composingprograms.css b/v3/css/composingprograms.css new file mode 100644 index 000000000..0133649b3 --- /dev/null +++ b/v3/css/composingprograms.css @@ -0,0 +1,18 @@ +/* custom CSS for ../composingprograms.html + + always include this file AFTER pytutor.css +*/ + +div.ExecutionVisualizer table#pyCodeOutput { + font-size:11pt; + white-space: nowrap; +} + +div.ExecutionVisualizer div.stackFrame, +div.ExecutionVisualizer div.zombieStackFrame { + white-space: nowrap; +} + +div.ExecutionVisualizer div.zombieStackFrame { + color: #808080; +} diff --git a/v3/css/holistic.css b/v3/css/holistic.css new file mode 100644 index 000000000..cce0943e3 --- /dev/null +++ b/v3/css/holistic.css @@ -0,0 +1,127 @@ +/* Created by Irene Chen (2013) */ + +div.HolisticVisualizer div#debug::-webkit-scrollbar { + width:9px; +} + +div.HolisticVisualizer div#debug::-webkit-scrollbar-track { + -webkit-border-radius:5px; + border-radius:5px; + background:rgba(0,0,0,0.1); +} + +div.HolisticVisualizer div#debug::-webkit-scrollbar-thumb { + -webkit-border-radius:5px; + border-radius:5px; + background:rgba(0,0,0,0.2); +} + +div.HolisticVisualizer div#debug::-webkit-scrollbar-thumb:hover { + background:rgba(0,0,0,0.4); +} + +div.HolisticVisualizer div#debug::-webkit-scrollbar-thumb:window-inactive { + background:rgba(0,0,0,0.05); +} + +div.HolisticVisualizer { + font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; + font-size: 16px; +} + +div.HolisticVisualizer pre { + margin: 0; +} + +div.HolisticVisualizer div.control { + border :1px solid black; + border-radius: 5px; + display: block; + height: 100px; + margin-bottom: 10px; + margin-left: 50px; + padding: 5px; + width: 240px; +} + +div.HolisticVisualizer table { + border-collapse: collapse; + display: inline-block; + font-family: Courier, monospace; + margin-left: 50px; + margin-top: 1px; + vertical-align: top; +} + +div.HolisticVisualizer #code tr, div.HolisticVisualizer #code td { + border-width: 0px; + padding: 0px; +} + +div.HolisticVisualizer #code td:hover, div.HolisticVisualizer #code td.v-hover { + background-color: #b0e0e6; +} + +div.HolisticVisualizer div#slider { + border: 1px solid gray; + display: inline-block; + height: 100%; + overflow-x: scroll; + vertical-align: top; + width: 500px; +} + +div.HolisticVisualizer div#debug-panel { + display: inline-block; + font-size: 10pt; + height: 400px; + vertical-align: top; + width: 400px; +} + +div.HolisticVisualizer div#debug { + height: 90%; + overflow: -moz-scrollbars-vertical; + overflow-y: scroll; +} + +div.HolisticVisualizer path { + stroke: steelblue; + stroke-width: 1; + fill: none; +} + +div.HolisticVisualizer .delimiter { + stroke: black; + stroke-opacity: 0.8; + stroke-width: 1px; +} + +div.HolisticVisualizer .h-hover { + fill-opacity: 0; + stroke: black; + stroke-opacity: 0; + stroke-width: 20px; +} + +div.HolisticVisualizer .v-hover { + fill-opacity: 0; +} + +div.HolisticVisualizer .v-guide, div.HolisticVisualizer .h-guide { + stroke: black; + stroke-opacity: 0.4; + stroke-width: 1px; +} + +div.HolisticVisualizer .axis path, +div.HolisticVisualizer .axis line { + fill: none; + stroke: black; + shape-rendering: crispEdges; +} + +div.HolisticVisualizer .axis text { + font-family: sans-serif; + font-size: 11px; +} diff --git a/v3/css/index.css b/v3/css/index.css new file mode 100644 index 000000000..b9e4c717a --- /dev/null +++ b/v3/css/index.css @@ -0,0 +1,201 @@ +/* CSS accompanying ../index.html */ + +body { + background-color: white; + + font-family: Georgia, Palatino, Times, serif; + + font-size: 12pt; + + /* use fixed width for simplicity */ + max-width: 900px; + min-width: 900px; + width: 900px; + + margin-left: auto; + margin-right: auto; +} + +/* for prose text only */ +p, li { + line-height: 1.5; +} + +h1 { + font-weight: normal; + margin-top: 0px; + margin-bottom: 8px; + line-height: 1.5; +} + +.smallH1 { + font-size: 14pt; + margin-left: -2px; +} + +#optLink { + font-size: 14pt; + text-decoration: none; + color: #3D58A2; + font-weight: bold; +} + +#optLink:hover { + color: #3D58A2; + text-decoration: underline; +} + +.titlePane { + margin-left: auto; + margin-right: auto; + margin-bottom: 0px; + text-align: center; +} + +.titlePane h1 { + font-size: 22pt; + margin-bottom: 5px; +} + +div.mainBodyPane { + margin-left: auto; + margin-right: auto; +} + +div.activityPane { + /* TOP RIGHT BOTTOM LEFT */ + padding: 15px 0px /* make right padding ZERO and just right-pad 'p' */ 5px 20px; + text-align: left; + border: 3px solid #005583; +} + +div.activityPane p { + padding-right: 30px; +} + +div.activityPane h1 { + font-size: 22pt; + margin-bottom: 20pt; +} + + +ul { + padding-left: 18px; +} + +li { + margin-bottom: 12px; + font-size: 10pt; +} + +a, +a:visited, +a:hover { + color: #3D58A2; +} + +#learnHeading, #embedHeading, #shareHeading { + font-family: verdana, arial, helvetica, sans-serif; + font-weight: bold; + font-size: 24pt; +} + +#learnHeading { + color: #062270; +} + +div#learnPane { + margin-top: 6pt; + margin-bottom: 8pt; + border: 5px solid #062270; +} + +div#learnPane p { + padding-right: 100px; +} + +div#learnPane #startLink { + font-size: 16pt; + font-weight: normal; + margin-top: 30px; + margin-bottom: 35px; + font-family: verdana, arial, helvetica, sans-serif; +} + +div#learnPane #startLink a { + border-bottom-style: solid; + border-bottom-width: 2px; + text-decoration: none; +} + +tt { + /*font-size: 85%;*/ +} + +div#embedPane { + margin-right: 5px; + border: 5px solid #5a7973; +} + + +#embedHeading { + color: #5a7973; +} + +div#sharePane { + margin-left: 5px; + border: 5px solid #4284d3; +} + +#shareHeading { + color: #4284d3; +} + +div#detailsPane { + margin-top: 0px; + margin-left: 5px; + border: 0px; /* NO BORDER! */ +} + +#partnershipDiv { + /*background-color: #d8e1e3;*/ + background-color: #d9cdb6; + width: 60%; + padding: 8px; + margin-left: auto; + margin-right: auto; + text-align: center; + + font-size: 10pt; + font-family: Monaco, arial, sans-serif; +} + +table.layoutTbl { + border: 0px; + max-width: 900px; +} + +table.layoutTbl td#embedPaneTd { + width: 60%; + vertical-align: top; +} + +table.layoutTbl td#sharePaneTd { + width: 40%; + vertical-align: top; +} + + +#footer { + color: #666666; + font-size: 9pt; + border-top: 1px solid #bbbbbb; + padding-top: 0px; + margin-top: 20px; + + /* center align */ + margin-left: auto; + margin-right: auto; + + font-family: verdana, arial, helvetica, sans-serif; +} diff --git a/v3/css/jquery.qtip.css b/v3/css/jquery.qtip.css new file mode 100644 index 000000000..fb7fe24b6 --- /dev/null +++ b/v3/css/jquery.qtip.css @@ -0,0 +1,573 @@ +/*! qTip2 - Pretty powerful tooltips - v2.0.0 - 2012-09-10 +* http://craigsworks.com/projects/qtip2/ +* Copyright (c) 2012 Craig Michael Thompson; Licensed MIT, GPL */ + +/* Fluid class for determining actual width in IE */ +#qtip-rcontainer{ + position: absolute; + left: -28000px; + top: -28000px; + display: block; + visibility: hidden; +} + + /* Fluid class for determining actual width in IE */ + #qtip-rcontainer .ui-tooltip{ + display: block !important; + visibility: hidden !important; + position: static !important; + float: left !important; + } + +/* Core qTip styles */ +.ui-tooltip, .qtip{ + position: absolute; + left: -28000px; + top: -28000px; + display: none; + + max-width: 280px; + min-width: 50px; + + font-size: 10.5px; + line-height: 12px; +} + + .ui-tooltip-content{ + position: relative; + padding: 5px 9px; + overflow: hidden; + + text-align: left; + word-wrap: break-word; + } + + .ui-tooltip-titlebar{ + position: relative; + min-height: 14px; + padding: 5px 35px 5px 10px; + overflow: hidden; + + border-width: 0 0 1px; + font-weight: bold; + } + + .ui-tooltip-titlebar + .ui-tooltip-content{ border-top-width: 0 !important; } + + /* Default close button class */ + .ui-tooltip-titlebar .ui-state-default{ + position: absolute; + right: 4px; + top: 50%; + margin-top: -9px; + + cursor: pointer; + outline: medium none; + + border-width: 1px; + border-style: solid; + } + + * html .ui-tooltip-titlebar .ui-state-default{ top: 16px; } /* IE fix */ + + .ui-tooltip-titlebar .ui-icon, + .ui-tooltip-icon .ui-icon{ + display: block; + text-indent: -1000em; + direction: ltr; + } + + .ui-tooltip-icon, .ui-tooltip-icon .ui-icon{ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + text-decoration: none; + } + + .ui-tooltip-icon .ui-icon{ + width: 18px; + height: 14px; + + text-align: center; + text-indent: 0; + font: normal bold 10px/13px Tahoma,sans-serif; + + color: inherit; + background: transparent none no-repeat -100em -100em; + } + + +/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */ +.ui-tooltip-focus{} + +/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */ +.ui-tooltip-hover{} + +/* Default tooltip style */ +.ui-tooltip-default{ + border-width: 1px; + border-style: solid; + border-color: #F1D031; + + background-color: #FFFFA3; + color: #555; +} + + .ui-tooltip-default .ui-tooltip-titlebar{ + background-color: #FFEF93; + } + + .ui-tooltip-default .ui-tooltip-icon{ + border-color: #CCC; + background: #F1F1F1; + color: #777; + } + + .ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{ + border-color: #AAA; + color: #111; + } + + +/*! Light tooltip style */ +.ui-tooltip-light{ + background-color: white; + border-color: #E2E2E2; + color: #454545; +} + + .ui-tooltip-light .ui-tooltip-titlebar{ + background-color: #f1f1f1; + } + + +/*! Dark tooltip style */ +.ui-tooltip-dark{ + background-color: #505050; + border-color: #303030; + color: #f3f3f3; +} + + .ui-tooltip-dark .ui-tooltip-titlebar{ + background-color: #404040; + } + + .ui-tooltip-dark .ui-tooltip-icon{ + border-color: #444; + } + + .ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/*! Cream tooltip style */ +.ui-tooltip-cream{ + background-color: #FBF7AA; + border-color: #F9E98E; + color: #A27D35; +} + + .ui-tooltip-cream .ui-tooltip-titlebar{ + background-color: #F0DE7D; + } + + .ui-tooltip-cream .ui-state-default .ui-tooltip-icon{ + background-position: -82px 0; + } + + +/*! Red tooltip style */ +.ui-tooltip-red{ + background-color: #F78B83; + border-color: #D95252; + color: #912323; +} + + .ui-tooltip-red .ui-tooltip-titlebar{ + background-color: #F06D65; + } + + .ui-tooltip-red .ui-state-default .ui-tooltip-icon{ + background-position: -102px 0; + } + + .ui-tooltip-red .ui-tooltip-icon{ + border-color: #D95252; + } + + .ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{ + border-color: #D95252; + } + + +/*! Green tooltip style */ +.ui-tooltip-green{ + background-color: #CAED9E; + border-color: #90D93F; + color: #3F6219; +} + + .ui-tooltip-green .ui-tooltip-titlebar{ + background-color: #B0DE78; + } + + .ui-tooltip-green .ui-state-default .ui-tooltip-icon{ + background-position: -42px 0; + } + + +/*! Blue tooltip style */ +.ui-tooltip-blue{ + background-color: #E5F6FE; + border-color: #ADD9ED; + color: #5E99BD; +} + + .ui-tooltip-blue .ui-tooltip-titlebar{ + background-color: #D0E9F5; + } + + .ui-tooltip-blue .ui-state-default .ui-tooltip-icon{ + background-position: -2px 0; + } + + +/* Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.ui-tooltip-shadow{ + -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); +} + +/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.ui-tooltip-rounded, +.ui-tooltip-tipsy, +.ui-tooltip-bootstrap{ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +/* Youtube tooltip style */ +.ui-tooltip-youtube{ + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 3px #333; + -moz-box-shadow: 0 0 3px #333; + box-shadow: 0 0 3px #333; + + color: white; + border-width: 0; + + background: #4A4A4A; + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black)); + background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%); +} + + .ui-tooltip-youtube .ui-tooltip-titlebar{ + background-color: #4A4A4A; + background-color: rgba(0,0,0,0); + } + + .ui-tooltip-youtube .ui-tooltip-content{ + padding: .75em; + font: 12px arial,sans-serif; + + filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000); + -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"; + } + + .ui-tooltip-youtube .ui-tooltip-icon{ + border-color: #222; + } + + .ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/* jQuery TOOLS Tooltip style */ +.ui-tooltip-jtools{ + background: #232323; + background: rgba(0, 0, 0, 0.7); + background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323)); + background-image: -moz-linear-gradient(top, #717171, #232323); + background-image: -webkit-linear-gradient(top, #717171, #232323); + background-image: -ms-linear-gradient(top, #717171, #232323); + background-image: -o-linear-gradient(top, #717171, #232323); + + border: 2px solid #ddd; + border: 2px solid rgba(241,241,241,1); + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 12px #333; + -moz-box-shadow: 0 0 12px #333; + box-shadow: 0 0 12px #333; +} + + /* IE Specific */ + .ui-tooltip-jtools .ui-tooltip-titlebar{ + background-color: transparent; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"; + } + .ui-tooltip-jtools .ui-tooltip-content{ + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"; + } + + .ui-tooltip-jtools .ui-tooltip-titlebar, + .ui-tooltip-jtools .ui-tooltip-content{ + background: transparent; + color: white; + border: 0 dashed transparent; + } + + .ui-tooltip-jtools .ui-tooltip-icon{ + border-color: #555; + } + + .ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{ + border-color: #333; + } + + +/* Cluetip style */ +.ui-tooltip-cluetip{ + -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + + background-color: #D9D9C2; + color: #111; + border: 0 dashed transparent; +} + + .ui-tooltip-cluetip .ui-tooltip-titlebar{ + background-color: #87876A; + color: white; + border: 0 dashed transparent; + } + + .ui-tooltip-cluetip .ui-tooltip-icon{ + border-color: #808064; + } + + .ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{ + border-color: #696952; + color: #696952; + } + + +/* Tipsy style */ +.ui-tooltip-tipsy{ + background: black; + background: rgba(0, 0, 0, .87); + + color: white; + border: 0 solid transparent; + + font-size: 11px; + font-family: 'Lucida Grande', sans-serif; + font-weight: bold; + line-height: 16px; + text-shadow: 0 1px black; +} + + .ui-tooltip-tipsy .ui-tooltip-titlebar{ + padding: 6px 35px 0 10; + background-color: transparent; + } + + .ui-tooltip-tipsy .ui-tooltip-content{ + padding: 6px 10; + } + + .ui-tooltip-tipsy .ui-tooltip-icon{ + border-color: #222; + text-shadow: none; + } + + .ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/* Tipped style */ +.ui-tooltip-tipped{ + border: 3px solid #959FA9; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + background-color: #F9F9F9; + color: #454545; + + font-weight: normal; + font-family: serif; +} + + .ui-tooltip-tipped .ui-tooltip-titlebar{ + border-bottom-width: 0; + + color: white; + background: #3A79B8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D)); + background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D); + background-image: -moz-linear-gradient(top, #3A79B8, #2E629D); + background-image: -ms-linear-gradient(top, #3A79B8, #2E629D); + background-image: -o-linear-gradient(top, #3A79B8, #2E629D); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"; + } + + .ui-tooltip-tipped .ui-tooltip-icon{ + border: 2px solid #285589; + background: #285589; + } + + .ui-tooltip-tipped .ui-tooltip-icon .ui-icon{ + background-color: #FBFBFB; + color: #555; + } + + +/** + * Twitter Bootstrap style. + * + * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11. + * Does not work with IE 7. + */ +.ui-tooltip-bootstrap{ + font-size: 13px; + line-height: 18px; + + color: #333333; + background-color: #ffffff; + + + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + + *border-right-width: 2px; + *border-bottom-width: 2px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + + .ui-tooltip-bootstrap .ui-tooltip-titlebar{ + font-size: 18px; + line-height: 22px; + + border-bottom: 1px solid #ccc; + background-color: transparent; + } + + .ui-tooltip-bootstrap .ui-tooltip-titlebar .ui-state-default{ + right: 9px; top: 49%; + border-style: none; + } + + .ui-tooltip-bootstrap .ui-tooltip-icon{ + background: white; + } + + .ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon{ + width: auto; + height: auto; + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); + } + + .ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon:hover{ + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); + } + + +/* IE9 fix - removes all filters */ +.ui-tooltip:not(.ie9haxors) div.ui-tooltip-content, +.ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{ + filter: none; + -ms-filter: none; +} + + +/* Tips plugin */ +.ui-tooltip .ui-tooltip-tip{ + margin: 0 auto; + overflow: hidden; + z-index: 10; +} + + .ui-tooltip .ui-tooltip-tip, + .ui-tooltip .ui-tooltip-tip .qtip-vml{ + position: absolute; + + line-height: 0.1px !important; + font-size: 0.1px !important; + color: #123456; + + background: transparent; + border: 0 dashed transparent; + } + + .ui-tooltip .ui-tooltip-tip canvas{ top: 0; left: 0; } + + .ui-tooltip .ui-tooltip-tip .qtip-vml{ + behavior: url(#default#VML); + display: inline-block; + visibility: visible; + } +/* Modal plugin */ +#qtip-overlay{ + position: fixed; + left: -10000em; + top: -10000em; +} + + /* Applied to modals with show.modal.blur set to true */ + #qtip-overlay.blurs{ cursor: pointer; } + + /* Change opacity of overlay here */ + #qtip-overlay div{ + position: absolute; + left: 0; top: 0; + width: 100%; height: 100%; + + background-color: black; + + opacity: 0.7; + filter:alpha(opacity=70); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + } + diff --git a/v3/css/opt-frontend.css b/v3/css/opt-frontend.css new file mode 100644 index 000000000..6fab037b4 --- /dev/null +++ b/v3/css/opt-frontend.css @@ -0,0 +1,86 @@ +/* CSS accompanying ../visualize.html */ + +h1 { + font-weight: normal; + font-size: 20pt; + font-family: georgia, serif; + line-height: 1em; /* enforce single spacing so that Georgia works */ + + margin-top: 0px; + margin-bottom: 8px; +} + +h2 { + font-size: 12pt; + font-weight: normal; + font-family: georgia, serif; + line-height: 1.1em; /* enforce single spacing so that Georgia works */ + + margin-top: 2px; + margin-bottom: 20px; +} + + +body { + background-color: white; + font-family: verdana, arial, helvetica, sans-serif; + font-size: 10pt; +} + +a, +a:visited, +a:hover { + color: #3D58A2; +} + +span { + padding: 0px; +} + +table#pyOutputPane { + padding: 10px; +} + +#pyInputPane { + margin-top: 20px; + margin-bottom: 20px; + + max-width: 700px; + /* center align */ + margin-left: auto; + margin-right: auto; +} + +#codeInputPane { + margin-top: 5px; + font-size: 12pt; + border: 1px solid #ddd; +} + +button.smallBtn { + font-size: 10pt; + padding: 3px; +} + +button.bigBtn { + font-size: 12pt; + padding: 6px; + margin-top: 6px; +} + +#footer { + color: #666666; + font-size: 9pt; + border-top: 1px solid #bbbbbb; + padding-top: 5px; + margin-top: 5px; + + max-width: 700px; + /* center align */ + margin-left: auto; + margin-right: auto; +} + + +/* necessary for CodeMirror error line highlighting to work! */ +.CodeMirror .errorLine { background: #ffff3f !important; } diff --git a/v3/css/opt-lessons.css b/v3/css/opt-lessons.css new file mode 100644 index 000000000..02c07e950 --- /dev/null +++ b/v3/css/opt-lessons.css @@ -0,0 +1,85 @@ +/* CSS accompanying ../lesson.html */ + +body { + background-color: white; + + font-family: verdana, arial, helvetica, sans-serif; + + font-size: 10pt; + + max-width: 900px; + /* center align */ + margin-left: auto; + margin-right: auto; +} + +div#lessonHeader { + margin-bottom: 15pt; + width: 800px; +} + +div#lessonTitle { + font-size: 16pt; + margin-bottom: 15pt; +} + +div#lessonDescription { + font-size: 11pt; + line-height: 1.5em; +} + +div#lessonNarration { + font-size: 11pt; + min-height: 25px; + margin-bottom: 12px; + line-height: 1.5em; + width: 800px; +} + + +a, +a:visited, +a:hover { + color: #3D58A2; +} + +span { + padding: 0px; +} + +table#pyOutputPane { + padding: 10px; +} + +#pyInputPane { + margin-top: 20px; + margin-bottom: 20px; + + max-width: 700px; + /* center align */ + margin-left: auto; + margin-right: auto; +} + +#codeInputPane { + margin-top: 5px; + font-size: 12pt; +} + +button.smallBtn { + font-size: 10pt; + padding: 3px; +} + +button.bigBtn { + font-size: 12pt; + padding: 5px; +} + +#footer { + color: #666; + font-size: 9pt; + border-top: 1px solid #bbb; + padding-top: 12px; + margin-top: 5px; +} diff --git a/v3/css/pytutor.css b/v3/css/pytutor.css new file mode 100644 index 000000000..3dd3a4e02 --- /dev/null +++ b/v3/css/pytutor.css @@ -0,0 +1,751 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2012 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + +/* Most recent color scheme redesign on 2012-08-19 */ + +/* To prevent CSS namespace clashes, prefix all rules with: + div.ExecutionVisualizer +*/ + + +/* reset some styles to nullify effects of existing stylesheets + e.g., http://meyerweb.com/eric/tools/css/reset/ +*/ +div.ExecutionVisualizer { + /* none for now */ +} + +div.ExecutionVisualizer table.visualizer { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 10pt; + margin-bottom: 10px; +} + +div.ExecutionVisualizer table.visualizer td.vizLayoutTd { + vertical-align: top; +} + +div.ExecutionVisualizer td#stack_td, +div.ExecutionVisualizer td#heap_td { + vertical-align:top; + font-size: 10pt; /* don't make fonts in the heap so big! */ +} + +div.ExecutionVisualizer #dataViz { + margin-left: 25px; +} + +div.ExecutionVisualizer div#codeDisplayDiv { + /* set this as default unless user specifies a custom size */ + width: 550px; +} + +div.ExecutionVisualizer div#pyCodeOutputDiv { + /*max-width: 550px;*/ + max-height: 450px; + /*max-height: 620px;*/ + overflow: auto; + /*margin-bottom: 4px;*/ + + margin-left: auto; + margin-right: auto; +} + +div.ExecutionVisualizer table#pyCodeOutput { + font-family: Andale mono, monospace; + font-size:12pt; + line-height:1.1em; + + border-collapse: separate; /* some crazy CSS voodoo that needs to be + there so that SVG arrows to the left + of the code line up vertically in Chrome */ + border-spacing: 0px; + border-top: 1px solid #bbb; + padding-top: 3px; + border-bottom: 1px solid #bbb; + /*margin-top: 6px;*/ + margin: 6px auto; /* Center code in its pane */ +} + +/* don't wrap lines within code output ... FORCE scrollbars to appear */ +div.ExecutionVisualizer table#pyCodeOutput td { + white-space: nowrap; + vertical-align: middle; /* explicitly force, to override external CSS conflicts */ +} + +div.ExecutionVisualizer #leftCodeGutterSVG { + width: 18px; + min-width: 18px; /* make sure it doesn't squash too thin */ + height: 0px; /* programmatically set this later ... IE needs this to + be 0 or it defaults to something arbitrary and gross */ +} + +div.ExecutionVisualizer #prevLegendArrowSVG, +div.ExecutionVisualizer #curLegendArrowSVG { + width: 18px; + height: 10px; +} + +div.ExecutionVisualizer .arrow { + font-size: 16pt; +} + +div.ExecutionVisualizer table#pyCodeOutput .lineNo { + color: #aaa; + padding: 0.2em; + padding-left: 0.3em; + padding-right: 0.5em; + text-align: right; +} + +div.ExecutionVisualizer table#pyCodeOutput .cod { + /*font-weight: bold;*/ + margin-left: 3px; + padding-left: 7px; + text-align: left; /* necessary or else doesn't work properly in IE */ +} + +div.ExecutionVisualizer div#progOutputs { + margin-top: 8px; +} + +div.ExecutionVisualizer div#legendDiv { + margin-top: 10px; + padding: 0px; + text-align: left; + color: #666; + font-size: 9pt; +} + +div.ExecutionVisualizer div#editCodeLinkDiv { + text-align: center; + /* + margin-top: 12px; + margin-bottom: 4px; + */ + margin: 8px auto; +} + +div.ExecutionVisualizer div#annotateLinkDiv { + /*text-align: left;*/ + margin-top: 0px; + margin-bottom: 12px; + /* + margin-left: auto; + margin-right: auto; + */ +} + +div.ExecutionVisualizer div#stepAnnotationDiv { + margin-bottom: 12px; +} + +div.ExecutionVisualizer textarea#stepAnnotationEditor, +div.ExecutionVisualizer textarea#vizTitleEditor, +div.ExecutionVisualizer textarea#vizDescriptionEditor { + border: 1px solid #999999; + padding: 4px; + + overflow: auto; /* to look pretty on IE */ + /* make sure textarea doesn't grow and stretch */ + resize: none; +} + + +div.ExecutionVisualizer #errorOutput { + color: #e93f34; /* should match brightRed JavaScript variable */ + font-size: 12pt; + padding: 2px; + line-height: 1.5em; + margin-bottom: 4px; +} + +/* VCR control buttons for stepping through execution */ + +div.ExecutionVisualizer #vcrControls { + margin: 15px auto; + /*width: 100%;*/ + text-align: center; +} + +div.ExecutionVisualizer #vcrControls button { + margin-left: 2px; + margin-right: 2px; +} + +div.ExecutionVisualizer #vcrControls #curInstr { + margin-left: 4px; + margin-right: 4px; +} + +div.ExecutionVisualizer #pyStdout { + border: 1px solid #999999; + font-size: 12pt; + padding: 4px; + font-family: Andale mono, monospace; + + overflow: auto; /* to look pretty on IE */ + /* make sure textarea doesn't grow and stretch */ + resize: none; +} + + +div.ExecutionVisualizer .vizFrame { + margin-bottom: 20px; + padding-left: 8px; + border-left: 2px solid #cccccc; +} + + +/* Rendering of primitive types */ + +div.ExecutionVisualizer .nullObj { +// font-size: 8pt; +} + +div.ExecutionVisualizer .stringObj, +div.ExecutionVisualizer .customObj, +div.ExecutionVisualizer .funcObj { + font-family: Andale mono, monospace; + white-space: nowrap; +} + +div.ExecutionVisualizer .retval { + font-size: 9pt; +} + +div.ExecutionVisualizer .stackFrame .retval { + color: #e93f34; /* highlight non-zombie stack frame return values - + should match brightRed JavaScript variable */ +} + +/* Rendering of basic compound types */ + +div.ExecutionVisualizer table.listTbl, +div.ExecutionVisualizer table.tupleTbl, +div.ExecutionVisualizer table.setTbl { + background-color: #ffffc6; +} + + +div.ExecutionVisualizer table.listTbl { + border: 0px solid black; + border-spacing: 0px; +} + +div.ExecutionVisualizer table.listTbl td.listHeader, +div.ExecutionVisualizer table.tupleTbl td.tupleHeader { + padding-left: 4px; + padding-top: 2px; + padding-bottom: 3px; + font-size: 8pt; + color: #777; + text-align: left; + border-left: 1px solid #555555; +} + +div.ExecutionVisualizer table.tupleTbl { + border-spacing: 0px; + color: black; + + border-bottom: 1px solid #555555; /* must match td.tupleHeader border */ + border-top: 1px solid #555555; /* must match td.tupleHeader border */ + border-right: 1px solid #555555; /* must match td.tupleHeader border */ +} + + +div.ExecutionVisualizer table.listTbl td.listElt { + border-bottom: 1px solid #555555; /* must match td.listHeader border */ + border-left: 1px solid #555555; /* must match td.listHeader border */ +} + +div.ExecutionVisualizer table.tupleTbl td.tupleElt { + border-left: 1px solid #555555; /* must match td.tupleHeader border */ +} + +div.ExecutionVisualizer table.customObjTbl { + background-color: white; + color: black; + border: 1px solid black; +} + +div.ExecutionVisualizer table.customObjTbl td.customObjElt { + padding: 5px; +} + +div.ExecutionVisualizer table.listTbl td.listElt, +div.ExecutionVisualizer table.tupleTbl td.tupleElt { + padding-top: 0px; + padding-bottom: 8px; + padding-left: 10px; + padding-right: 10px; + vertical-align: bottom; +} + +div.ExecutionVisualizer table.setTbl { + border: 1px solid #555555; + border-spacing: 0px; + text-align: center; +} + +div.ExecutionVisualizer table.setTbl td.setElt { + padding: 8px; +} + + +div.ExecutionVisualizer table.dictTbl, +div.ExecutionVisualizer table.instTbl, +div.ExecutionVisualizer table.classTbl { + border-spacing: 1px; +} + +div.ExecutionVisualizer table.dictTbl td.dictKey, +div.ExecutionVisualizer table.instTbl td.instKey, +div.ExecutionVisualizer table.classTbl td.classKey { + background-color: #faebbf; +} + +div.ExecutionVisualizer table.dictTbl td.dictVal, +div.ExecutionVisualizer table.instTbl td.instVal, +div.ExecutionVisualizer table.classTbl td.classVal { + background-color: #ffffc6; +} + + +div.ExecutionVisualizer table.dictTbl td.dictKey, +div.ExecutionVisualizer table.instTbl td.instKey, +div.ExecutionVisualizer table.classTbl td.classKey { + padding-top: 12px /*15px*/; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 4px; + + text-align: right; +} + +div.ExecutionVisualizer table.dictTbl td.dictVal, +div.ExecutionVisualizer table.instTbl td.instVal, +div.ExecutionVisualizer table.classTbl td.classVal { + padding-top: 12px /*15px*/; + padding-bottom: 5px; + padding-right: 10px; + padding-left: 4px; +} + + +div.ExecutionVisualizer table.classTbl td, +div.ExecutionVisualizer table.instTbl td { + border-bottom: 1px #888 solid; +} + +div.ExecutionVisualizer table.classTbl td.classVal, +div.ExecutionVisualizer table.instTbl td.instVal { + border-left: 1px #888 solid; +} + +div.ExecutionVisualizer table.classTbl { + border-collapse: collapse; + border: 1px #888 solid; +} + +/* only add a border to dicts if they're embedded within another object */ +div.ExecutionVisualizer td.listElt table.dictTbl, +div.ExecutionVisualizer td.tupleElt table.dictTbl, +div.ExecutionVisualizer td.dictVal table.dictTbl, +div.ExecutionVisualizer td.instVal table.dictTbl, +div.ExecutionVisualizer td.classVal table.dictTbl { + border: 1px #888 solid; +} + +div.ExecutionVisualizer .objectIdLabel { + font-size: 8pt; + color: #444; + margin-bottom: 2px; +} + +div.ExecutionVisualizer .typeLabel { + font-size: 8pt; + color: #555; + margin-bottom: 2px; +} + +div.ExecutionVisualizer div#stack, +div.ExecutionVisualizer div#globals_area { + padding-left: 10px; + padding-right: 30px; + + /* no longer necessary ... */ + /*float: left;*/ + /* border-right: 1px dashed #bbbbbb; */ +} + +div.ExecutionVisualizer div.stackFrame, +div.ExecutionVisualizer div.zombieStackFrame { + background-color: #ffffff; + margin-bottom: 15px; + padding: 2px; + padding-left: 6px; + padding-right: 6px; + padding-bottom: 4px; + font-size: 10pt; +} + +div.ExecutionVisualizer div.zombieStackFrame { + border-left: 1px dotted #aaa; + /*color: #c0c0c0;*/ + color: #a0a0a0; +} + +div.ExecutionVisualizer div.highlightedStackFrame { + background-color: #e2ebf6; + /*background-color: #d7e7fb;*/ + + /*background-color: #c0daf8;*/ + /*background-color: #9eeaff #c5dfea;*/ +} + +div.ExecutionVisualizer div.stackFrame, +div.ExecutionVisualizer div.highlightedStackFrame { + border-left: 1px solid #a6b3b6; +} + + +div.ExecutionVisualizer div.stackFrameHeader { + font-family: Andale mono, monospace; + font-size: 10pt; + margin-top: 4px; + margin-bottom: 3px; + white-space: nowrap; +} + +div.ExecutionVisualizer td.stackFrameVar { + text-align: right; + padding-right: 8px; + padding-top: 3px; + padding-bottom: 3px; +} + +div.ExecutionVisualizer td.stackFrameValue { + text-align: left; + border-bottom: 1px solid #aaaaaa; + border-left: 1px solid #aaaaaa; + + vertical-align: middle; + + padding-top: 3px; + padding-left: 3px; + padding-bottom: 3px; +} + +div.ExecutionVisualizer .stackFrameVarTable tr { + +} + +div.ExecutionVisualizer .stackFrameVarTable { + text-align: right; + padding-top: 3px; + + /* right-align the table */ + margin-left: auto; + margin-right: 0px; + + /* hack to counteract possible nasty CSS reset styles from parent divs */ + border-collapse: separate; + border-spacing: 2px; +} + +div.ExecutionVisualizer div#heap { + float: left; + padding-left: 30px; +} + +div.ExecutionVisualizer td.toplevelHeapObject { + /* needed for d3 to do transitions */ + padding-left: 8px; + padding-right: 8px; + padding-top: 4px; + padding-bottom: 4px; + /* + border: 2px dotted white; + border-color: white; + */ +} + +div.ExecutionVisualizer table.heapRow { + margin-bottom: 10px; +} + +div.ExecutionVisualizer div.heapObject { + padding-left: 2px; /* leave a TINY amount of room for connector endpoints */ +} + +div.ExecutionVisualizer div.heapPrimitive { + padding-left: 4px; /* leave some more room for connector endpoints */ +} + +div.ExecutionVisualizer div#stackHeader { + margin-bottom: 15px; + text-align: right; +} + +div.ExecutionVisualizer div#heapHeader { + /*margin-top: 2px; + margin-bottom: 13px;*/ + margin-bottom: 15px; +} + +div.ExecutionVisualizer div#stackHeader, +div.ExecutionVisualizer div#heapHeader { + color: #333333; + font-size: 10pt; +} + +div.ExecutionVisualizer #executionSlider { + /* if you set 'width', then it looks ugly when you dynamically resize */ + margin-top: 15px; + margin-bottom: 5px; + + margin-left: auto; + margin-right: auto; + + width: 95%; +} + +div.ExecutionVisualizer #executionSliderCaption { + font-size: 8pt; + color: #666666; + margin-top: 15px; +} + +div.ExecutionVisualizer #executionSliderFooter { + margin-top: -7px; /* make it butt up against #executionSlider */ +} + + +/* darken slider handle a bit */ +div.ExecutionVisualizer .ui-slider .ui-slider-handle { + border: 1px solid #999; +} + + +/* for annotation bubbles */ + +/* For styling tricks, see: http://css-tricks.com/textarea-tricks/ */ +textarea.bubbleInputText { + border: 1px solid #ccc; + outline: none; + overflow: auto; /* to look pretty on IE */ + + /* make sure textarea doesn't grow and stretch the enclosing bubble */ + resize: none; + width: 225px; + max-width: 225px; + height: 35px; + max-height: 35px; +} + + +.ui-tooltip-pgbootstrap, +textarea.bubbleInputText { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 9pt; + line-height: 1.3em; +} + + +/* modified version of Twitter bootstrap style by Philip Guo */ +.ui-tooltip-pgbootstrap{ + color: #333; + background-color: #ffffff; + + max-width: 250px; + min-width: 10px; + + border: 2px solid #4284D3; + + cursor: pointer; + + *border-right-width: 2px; + *border-bottom-width: 2px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + /* way too poofy ... + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + */ + + -webkit-box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2); + box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2); + + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + + .ui-tooltip-pgbootstrap .ui-tooltip-titlebar{ + font-size: 18px; + line-height: 22px; + + border-bottom: 1px solid #ccc; + background-color: transparent; + } + + .ui-tooltip-pgbootstrap .ui-tooltip-content{ + padding: 5px /* 5px is minimum or else it might look ugly */ 8px; + } + + + .ui-tooltip-pgbootstrap .ui-tooltip-titlebar .ui-state-default{ + right: 9px; top: 49%; + border-style: none; + } + + .ui-tooltip-pgbootstrap .ui-tooltip-icon{ + background: white; + } + + .ui-tooltip-pgbootstrap .ui-tooltip-icon .ui-icon{ + width: auto; + height: auto; + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); + } + + .ui-tooltip-pgbootstrap .ui-tooltip-icon .ui-icon:hover{ + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); + } + + +/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.ui-tooltip-pgbootstrap{ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + + +.ui-tooltip-pgbootstrap-stub{ + border: 1px solid #999; + + /* + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + */ +} + + .ui-tooltip-pgbootstrap-stub .ui-tooltip-content{ + padding: 6px 9px; + } + + +div.ExecutionVisualizer .annotationText, +div.ExecutionVisualizer .vizDescriptionText { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 11pt; + line-height: 1.5em; +} + +div.ExecutionVisualizer .vizTitleText { + font-family: verdana, arial, helvetica, sans-serif; + font-size: 16pt; + margin-bottom: 12pt; +} + +div.ExecutionVisualizer div#vizHeader { + margin-bottom: 10px; + width: 700px; + max-width: 700px; +} + +/* prev then curr, so curr gets precedence when both apply */ +div.ExecutionVisualizer .highlight-prev { + background-color: #F0F0EA; +} + +div.ExecutionVisualizer .highlight-cur { + background-color: #FFFF66; +} + +div.ExecutionVisualizer .highlight-legend { + padding: 2px; +} + +/* resizing sliders from David Pritchard */ +.ui-resizable-e { + background-color: #dddddd; + width: 1px; + border: 3px solid white; +} + +.ui-resizable-e:hover { + border-color: #dddddd; +} + + +/* for pyCrazyMode */ + +/* prev then curr, so curr gets precedence when both apply */ +div.ExecutionVisualizer .pycrazy-highlight-prev { + background-color: #eeeeee; /*#F0F0EA;*/ + /* + text-decoration: none; + border-bottom: 1px solid #dddddd; + */ +} + +div.ExecutionVisualizer .pycrazy-highlight-cur { + background-color: #FFFF66; + /* aligned slightly higher than border-bottom */ + /* + text-decoration: none; + border-bottom: 1px solid #e93f34; + */ +} + +div.ExecutionVisualizer .pycrazy-highlight-prev-and-cur { + background-color: #FFFF66; + + text-decoration: none; + border-bottom: 1px solid #999999; +} diff --git a/v3/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/v3/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png new file mode 100644 index 000000000..954e22dbd Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/v3/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png new file mode 100644 index 000000000..64ece5707 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/v3/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png new file mode 100644 index 000000000..abdc01082 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/v3/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png new file mode 100644 index 000000000..9b383f4d2 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/v3/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png new file mode 100644 index 000000000..a23baad25 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/v3/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 000000000..42ccba269 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/v3/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png new file mode 100644 index 000000000..39d5824d6 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/v3/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png new file mode 100644 index 000000000..f1273672d Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png differ diff --git a/v3/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/v3/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png new file mode 100644 index 000000000..359397acf Binary files /dev/null and b/v3/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png differ diff --git a/v3/css/ui-lightness/images/ui-icons_222222_256x240.png b/v3/css/ui-lightness/images/ui-icons_222222_256x240.png new file mode 100644 index 000000000..b273ff111 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-icons_222222_256x240.png differ diff --git a/v3/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/v3/css/ui-lightness/images/ui-icons_228ef1_256x240.png new file mode 100644 index 000000000..a641a371a Binary files /dev/null and b/v3/css/ui-lightness/images/ui-icons_228ef1_256x240.png differ diff --git a/v3/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/v3/css/ui-lightness/images/ui-icons_ef8c08_256x240.png new file mode 100644 index 000000000..85e63e9f6 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-icons_ef8c08_256x240.png differ diff --git a/v3/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/v3/css/ui-lightness/images/ui-icons_ffd27a_256x240.png new file mode 100644 index 000000000..e117effa3 Binary files /dev/null and b/v3/css/ui-lightness/images/ui-icons_ffd27a_256x240.png differ diff --git a/v3/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/v3/css/ui-lightness/images/ui-icons_ffffff_256x240.png new file mode 100644 index 000000000..42f8f992c Binary files /dev/null and b/v3/css/ui-lightness/images/ui-icons_ffffff_256x240.png differ diff --git a/v3/css/ui-lightness/jquery-ui-1.8.21.custom.css b/v3/css/ui-lightness/jquery-ui-1.8.21.custom.css new file mode 100644 index 000000000..1bc08fb33 --- /dev/null +++ b/v3/css/ui-lightness/jquery-ui-1.8.21.custom.css @@ -0,0 +1,316 @@ +/*! + * jQuery UI CSS Framework 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/*! + * jQuery UI CSS Framework 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } +/* pgbovine - switch border from #dddddd to #ccc */ +.ui-widget-content { border: 1px solid #ccc; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } +.ui-widget-content a { color: #333333; } +.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } + +/* pgbovine - eliminate hover colors */ +/* +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } +.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } +*/ + +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } +.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*! + * jQuery UI Slider 1.8.21 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/v3/css/ui-lightness/jquery-ui-1.8.24.custom.css b/v3/css/ui-lightness/jquery-ui-1.8.24.custom.css new file mode 100644 index 000000000..f3988bcea --- /dev/null +++ b/v3/css/ui-lightness/jquery-ui-1.8.24.custom.css @@ -0,0 +1,335 @@ +/*! + * jQuery UI CSS Framework 1.8.24 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/*! + * jQuery UI CSS Framework 1.8.24 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } +/* pgbovine - switch border from #dddddd to #ccc */ +.ui-widget-content { border: 1px solid #ccc; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } +.ui-widget-content a { color: #333333; } +.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } + +/* pgbovine - eliminate hover colors */ +/* +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } +.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } +*/ + +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } +.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*! + * jQuery UI Resizable 1.8.24 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*! + * jQuery UI Slider 1.8.24 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/v3/css/x.png b/v3/css/x.png new file mode 100644 index 000000000..c11f7af69 Binary files /dev/null and b/v3/css/x.png differ diff --git a/v3/docs/chris-meyers.md b/v3/docs/chris-meyers.md new file mode 100644 index 000000000..d92ccbec7 --- /dev/null +++ b/v3/docs/chris-meyers.md @@ -0,0 +1,27 @@ +Starting in Summer 2013, Chris has been adding support for +[custom HTML rendering modules](https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/html-rendering.md) +in Online Python Tutor. His first two modules were: + +- [htmlFrame.py](https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/htmlFrame.py) +- [matrix.py](https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/matrix.py) + + +### Chris Meyers short bio (Sep 2013) ### + +I have been a software engineer for most of my working life, primarily in the newspaper industry. I've recently retired and now live in both Eugene Oregon and Bremen Germany. + +I received a BA in Physics from the University of Oregon and later a Masters degree in Computer Science. + +I've been using Python since 1995 and it has been by far my favorite programming language +since then. At the newspaper where I worked (The Register Guard) we used it whenever we could, +and especially with tools such as Django. + +I have been part of the open source community. I was a co-author for the book ["How to Think like a Computer Scientist (Python)"](http://www.openbookproject.net/thinkcs/python/english2e/) +along with Allen Downey and Jeff Elkner in 2002. +I also have a web page [Python for Fun][p4f] aimed at intermediate programmers and students. + +[p4f]: http://www.openbookproject.net/py4fun + +This latest project with Philip has been fun and challenging. +Online Python Tutor has been a great success in helping people visualize code running and we hope this addition will help with the visualization of whole algorithms running as well. + diff --git a/v3/docs/developer-overview.md b/v3/docs/developer-overview.md new file mode 100644 index 000000000..588b961c0 --- /dev/null +++ b/v3/docs/developer-overview.md @@ -0,0 +1,254 @@ +# Overview for Developers + +This document is a starting point for anyone who wants to hack on +Online Python Tutor (thereafter abbreviated as OPT). View it online at: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/developer-overview.md + +Look at the Git history to see when this document was last updated; the more time +elapsed since that date, the more likely things are out-of-date. + +I'm assuming that you're competent in Python, JavaScript, command-line-fu, and Google-fu, +so I won't do much hand-holding in these directions. + +This guide isn't meant to be comprehensive; rather, it's just a starting point for learning about the code +and development workflow. You will undoubtedly still be confused about details after reading it, so +feel free to email philip@pgbovine.net if you have questions. + +And please excuse the sloppy writing; I'm not trying to win any style awards here :) + + +## Getting Started: Running OPT locally on your machine + +When you check out OPT from GitHub, it's configured by default to run on Google App Engine +(but it can also run fine on a CGI-enabled webserver such as Apache). + +To run a local instance, download/install +the Google App Engine [Python SDK](https://developers.google.com/appengine/downloads) +for your OS and then run: + + cd OnlinePythonTutor/ + dev_appserver.py v3/ + +Now if you visit http://localhost:8080/ on your browser, you should see the main OPT editor screen. + +Congrats! Now you can edit any code in `OnlinePythonTutor/v3/` and reload the page to test your changes. +You don't need to shut down and restart the local webserver after every edit. + +btw, using the default configuration, http://localhost:8080/ is actually loading the `v3/visualize.html` HTML file. +(See `v3/pythontutor.py` for details.) + +The benefit of running OPT locally is that you can test all changes without going online. So even +if you're eventually going to deploy on something other than Google App Engine, it still makes sense to install locally +for development and testing. The main caveat here is that Google App Engine currently runs Python 2.7, +so you won't be able to test Python 3 locally this way. + +Here is a [blog post by a Hacker School student](http://theworldsoldestintern.wordpress.com/2012/10/15/installing-online-python-tutor-on-your-laptop-localhost8080/) +who set up OPT on his Ubuntu laptop. (btw [Hacker School](http://www.hackerschool.com/) is worth checking out!) + + +## Overall system architecture + +OPT consists of a pure-Python backend and an HTML/CSS/JavaScript frontend. +Here is a typical user interaction sequence: + +1. The user visits [visualize.html](http://pythontutor.com/visualize.html) and types in Python code in the web-based text editor. +2. The user hits the "Visualize execution" button. +3. The OPT frontend sends the user's Python code as a string to the backend by making an Ajax GET request. +4. The backend executes the Python code under the supervision of the Python [bdb](http://docs.python.org/library/bdb.html) debugger, produces an execution trace, and sends that trace back to the frontend in JSON format. +5. The frontend switches to a visualization display, parses the execution trace, and renders the appropriate stack frames, heap objects, and pointers. +6. When the user interacts with the frontend by stepping through execution points, the frontend renders the proper data structures **without** making another subsequent call to the backend. + +All relevant files are located in `OnlinePythonTutor/v3/`, since v3 is the currently-active version. + +The frontend consists of: +``` +visualize.html +css/opt-frontend.css +js/opt-frontend.js +css/pytutor.css +js/pytutor.js + +``` + +`pytutor.[js|css]` contain the bulk of the OPT frontend code. In theory, you should be able to **embed** an +OPT visualization into any webpage with one line of JavaScript that looks like: + +```javascript +var v = new ExecutionVisualizer(domRoot, traceFromBackend, optionalParams); +``` + +Thus, the design of `pytutor.[js|css]` is meant to be as modular as possible, which means abstracting +everything in an `ExecutionVisualizer` class. This way, you can create multiple visualizer objects +to embed on the same webpage without them interfering with one another. + +`opt-frontend.[js|css]` contain code that is specific to the `visualize.html` page and doesn't make sense for, say, +embedding OPT visualizations into other webpages. + +The backend consists of: +``` +pg_logger.py - the main entry point to the OPT backend +pg_encoder.py - encodes the trace format into JSON to send to frontend +generate_json_trace.py - script to test the backend independent of the frontend +app.yaml, pythontutor.py - files for deploying on Google App Engine +web_exec.py - example CGI script for deploying backend on CGI-enabled webservers +``` + +The backend works with both Python 2 and 3. + +## Hacking the backend + +To modify the backend, you will mainly need to understand `pg_logger.py` and `pg_encoder.py`. + + +### Two quick tips for starters + +Since the backend's details might change, rather than documenting every last detail, I'd rather equip you with +the knowledge needed to experiment with the code yourself, since that knowledge is less likely to get outdated. + +First, run `generate_json_trace.py` to see the trace that the backend generates for a given input Python program. +This is the main way to do an "end-to-end" test on your backend modifications. For example, if you want the backend +to process a Python program stored in `example.py`, then run: + +``` +python generate_json_trace.py example.py +``` + +Doing so will print a JSON-formatted execution trace to stdout. +This data is exactly what the backend sends to the frontend. +(Actually not quite: The sent trace is actually compressed to eliminate all extraneous spaces and newlines. +But for testing purposes, I've made the trace more human-readable.) + +Second, when you're "print debugging" in the backend, you can't simply print to stdout, since `pg_logger.py` +*redirects* stdout to a buffer. Instead, you need to write all of your print statements as: + +```python +print >> sys.stderr, +``` + +so that the output goes to stderr. + +The easiest way to debug or investigate how some part of the code works is to **insert in print statements (to stderr) +and then run `generate_json_trace.py` on small code examples**. Trust me -- being able to do this is way more +effective than memorizing detailed documentation (which could be outdated by the time you read it). + + +### Backend control flow + +Let's now trace through a typical backend run to get a sense of how it works. + +The main entry point is this function in `pg_logger.py`: + +```python +def exec_script_str(script_str, cumulative_mode, finalizer_func): +``` + +`script_str` contains the entire string contents of the Python program for the backend to execute. +Ignore `cumulative_mode` for now (just set it to `False`). `finalizer_func` is the function to call +after the backend is done generating a trace. + +Let's look at how `generate_json_trace.py` calls `exec_script_str` (using a simplified version of its code): + +```python +# simplified version of generate_json_trace.py +import pg_logger, json + +def json_finalizer(input_code, output_trace): + ret = dict(code=input_code, trace=output_trace) + json_output = json.dumps(ret, indent=2) + print(json_output) + +pg_logger.exec_script_str(open("example.py").read(), False, json_finalizer) +``` + +In this simplified example, the script opens `example.py`, reads its contents into a string, and passes that string +into `exec_script_str`. The finalizer function is `json_finalizer`, which takes two parameters -- +the original code from `example.py` (`input_code`) and the execution trace that it produced (`output_trace`) -- +inserts both into a dict, encodes that dict as a JSON object, and then prints that JSON object to stdout. +That's why when you run `generate_json_trace.py`, its output is a JSON object printed to stdout. + +Note that if you pass in another finalizer function, then you can do other actions like postprocessing +the output trace or saving it to a file rather than printing to stdout. + +Now that you know what's passed into `exec_script_str` and what comes out of it, let's dive into its guts +to see how that all-important execution trace (`output_trace`) is produced. +Here is the code for `exec_script_str` in `pg_logger.py`: + +```python +def exec_script_str(script_str, cumulative_mode, finalizer_func): + logger = PGLogger(cumulative_mode, finalizer_func) + try: + logger._runscript(script_str) + except bdb.BdbQuit: + pass + finally: + logger.finalize() +``` + +This code creates a `PGLogger` object then calls its `_runscript` method to run the user's program (from `example.py`), +which is passed in as `script_str`. +After execution finishes (possibly due to a bdb-related exception), the `finalize` method is run. This method +does some postprocessing of the trace (`self.trace`) and then finally calls the user-supplied `finalizer_func`. + +`PGLogger` is a subclass of [bdb.Bdb](http://docs.python.org/library/bdb.html#bdb.Bdb), +which is the Python standard debugger module. It stores lots of fields to record what +is going on as it executes the program that the user passed in as `script_str`. Its `_runscript` method +is where the action starts. This method first sets up a sandboxed environment containing a restricted +set of builtins (`user_builtins`) and redirection for stdout (`user_stdout`), and then executes this code: + +```python +try: + self.run(script_str, user_globals, user_globals) +except SystemExit: + raise bdb.BdbQuit +``` + +The `self.run` method is actually [inherited from bdb.Bdb](http://docs.python.org/library/bdb.html#bdb.Bdb.run). +It executes the contents of `script_str` in a modified global environment (`user_globals`). + +Ok, the debugger has just started executing the program that the user passed in (from `example.py` in our example). +What happens now? Here's where the magic happens. Look at the methods called +`user_call`, `user_return`, `user_exception`, and `user_line`. Again, those are all +[inherited from bdb.Bdb](http://docs.python.org/library/bdb.html#bdb.Bdb); +take a minute to read up on what they're supposed to do. + +As the user's program is running, bdb +will pause execution at every function call, return, exception, and single-line step (most common). +It then transfers control over to the respective handler method. +Since `PGLogger` overrides those handler methods, it can hijack control at +crucial points during program execution to do what it needs to do. + +Since `PGLogger` does similar things regardless of why execution was paused (function call, return, exception, or single-line step), +all handlers dispatch to a giant method called `interaction`. + +During a call to `interaction`, the backend collects the state of the stack and all run-time data and then creates a +trace entry (`trace_entry` dict). Then it appends `trace_entry` onto `self.trace`: + +```python +self.trace.append(trace_entry) +``` + +Every time bdb pauses the user's program's execution and dispatches to `interaction` in `PGLogger`, one new trace +entry is created. At the end of execution, `self.trace` contains as many trace entries as there were "steps" +in the user's program execution. Each step more-or-less corresponds to one line being executed. +(To guard against infinite loops, `PGLogger` terminates execution when `MAX_EXECUTED_LINES` steps have been executed.) + +### Execution Trace Format + +A lot of complicated stuff happens within `interaction` to grab a snapshot of the execution state and encode +it into an execution trace entry. Insert a bunch of print statements (remember, to stderr) to get a sense of what's going on. + +In addition, I've written up a separate document describing the exact format of an execution trace: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/opt-trace-format.md + + +### Backend regression tests + +If you're paranoid about your backend changes breaking stuff, please bug me, and I'll write up docs +on how to run the regression test suite. + + +## Hacking the frontend + +(TODO: write me sometime!) \ No newline at end of file diff --git a/v3/docs/embedding-HOWTO.md b/v3/docs/embedding-HOWTO.md new file mode 100644 index 000000000..d03e6afa7 --- /dev/null +++ b/v3/docs/embedding-HOWTO.md @@ -0,0 +1,86 @@ +# Embedding Online Python Tutor visualizations + +This document is a starting point for anyone who wants to embed +Online Python Tutor (OPT) visualizations in their webpage. View it online at: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/embedding-HOWTO.md + +Look at the Git history to see when this document was last updated; the more time +elapsed since that date, the more likely things are out-of-date. + +I'm assuming that you're competent in Python, JavaScript, command-line-fu, and Google-fu, +so I won't do much hand-holding in these directions. + +This guide isn't meant to be comprehensive; you will undoubtedly still +be confused about details after reading it, so feel free to email +philip@pgbovine.net if you have questions. + +And please excuse the sloppy writing; I'm not trying to win any style awards here :) + +## iframe embedding + +An easy (although somewhat limited) way to embed an OPT visualization on your website is to enclose it within an [iframe](http://www.w3schools.com/tags/tag_iframe.asp). + +If you generate a visualization (e.g., click here) +and then click the "Generate embed code" button at the bottom of the page, the following code will be generated: + +```html + +``` + +If you copy-and-paste the above code into your HTML webpage, then it will embed the given visualization as an iframe. + +See `v3/iframe-embed-demo.html` for a working demo showing several embedded iframes ([online here](http://pythontutor.com/iframe-embed-demo.html)). + + +### iframe embedding parameters + +You can customize the iframe's size by adjusting the `width` and `height` parameters. All other parameters are passed +after the hash mark (`#` character) in the `src=` URL string. Note that OPT uses the hash mark rather than the usual +question mark `?` query string. Here are the currently-supported parameters: + +- `code` - The Python code to visualize (mandatory: URL-encoded string) +- `py` - Python interpreter version (mandatory: `2` for Python 2.7 or `3` for Python 3.2) +- `verticalStack` - Set to `true` if you want the code and visualization to stack atop one another (optional) +- `curInstr` - A (zero-indexed) integer of the execution point to directly jump to in the visualization (optional) +- `cumulative` - Set to `true` if you want exited functions to be displayed (optional) + + + +## Direct embedding + +The iframe-based approach has some limitations (e.g., hard to dynamically resize the enclosing iframe, +cannot run while offline, limited parameter choices). +Here are instructions for a more powerful but harder-to-use alternative -- directly embedding visualizations. + + +### High-Level Overview + +To directly embed a visualization, you: + +1. Run the target Python program offline to generate an execution trace, which is one (really, really long) +string representing a JavaScript (JSON) object. +2. Copy that long string into a JavaScript .js file. +3. Include some other stuff in your .js file and then embed it within your HTML webpage. + +Note that the embedded visualization is **read-only** -- that is, the user can interact with the visualization +by stepping forward and backward, but they cannot edit the code. +If the user wants to click the 'Edit code' button to edit the code, then they are +brought to the [code editor page](http://pythontutor.com/visualize.html). + +Also, note that the visualization is run client-side; thus, after the user loads the webpage (from the Internet +or, say, a USB drive), they can play with the visualization without an Internet connection. + +Finally, multiple visualizations can be embedded in a single HTML webpage, although you need to be careful +to redraw the SVG arrows when page elements are resized or moved. + +### The Nitty-Gritty + +Let's attempt to go [literate programming](http://en.wikipedia.org/wiki/Literate_programming) style now ... load up +[embedding-demo.html](http://pythontutor.com/embedding-demo.html) in +your browser to see a demo. And then view its [source code](https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/embedding-demo.html) and follow the instructions there, +which should then lead you to `v3/embedding-demo.js`. + +Everything you need to know should be in the demo code! diff --git a/v3/docs/embedding-HOWTO.txt b/v3/docs/embedding-HOWTO.txt new file mode 100644 index 000000000..49944948d --- /dev/null +++ b/v3/docs/embedding-HOWTO.txt @@ -0,0 +1,4 @@ +This document has been moved to embedding-HOWTO.md + +View it online at: +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/embedding-HOWTO.md diff --git a/v3/docs/html-rendering.md b/v3/docs/html-rendering.md new file mode 100644 index 000000000..f115a2240 --- /dev/null +++ b/v3/docs/html-rendering.md @@ -0,0 +1,74 @@ +# HTML rendering in Online Python Tutor + +As of May 2013, Online Python Tutor contains an experimental magic +`setHTML` function that lets your scripts render HTML to the canvas (and +accompanying `setJS` and `setCSS` functions for JavaScript and CSS, +respectively). + +Here is a +simple example +of `setHTML` at work. + +Let's step through the code: + + + # display a bunch of big red numbers + setCSS('.bigText {font-size: 80pt; color: red;}') + + for i in range(5): + setHTML('
      %d
      ' % i) + + # now display an image from my website + setHTML('') + + +The first call to `setCSS` defines a `bigText` CSS class with a giant font and red color. +Then the code iterates through a loop five times and calls `setHTML` to set the HTML canvas +to contain a single `div` of class `bigText` with the loop index as its contents. Finally, +the code makes one final `setHTML` call to set the canvas to an image from my personal website. + + +## Creating external modules + +It's really tedious to write out all of the HTML rendering code in the OPT input text box. +Thus, the best way to take advantage of HTML rendering is to define a custom +module to encapsulate all of the rendering code. Here is an example module: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/htmlexample_module.py + +This example module defines a `ColorTable` class that represents a table whose cells +can be filled in with colors. Each time the `render_HTML` method is called, OPT +renders the contents of the table as an HTML table whose cells are filled in with +the respective colors. + +Here is +an example +of this module in action: + + from htmlexample_module import ColorTable + + t = ColorTable(3, 4) + + t.set_color(0, 0, 'red') + t.render_HTML() + + t.set_color(1, 1, 'green') + t.render_HTML() + + t.set_color(2, 2, 'blue') + t.render_HTML() + + for i in range(3): + for j in range(4): + t.set_color(i, j, 'gray') + t.render_HTML() + +If you step through the code in OPT, you'll see an HTML table appearing below the code +and getting gradually filled in with colors. + +To get this module working with OPT, you need to first add its filename +(e.g., 'htmlexample_module') to the CUSTOM_MODULE_IMPORTS variable in pg_logger.py, approximately here: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/pg_logger.py#L119 + +To create your own custom modules, simply follow the conventions I've laid out with `htmlexample_module.py`! diff --git a/v3/docs/make_visualizations.md b/v3/docs/make_visualizations.md new file mode 100644 index 000000000..90d9ec55e --- /dev/null +++ b/v3/docs/make_visualizations.md @@ -0,0 +1,96 @@ +# Using make_visualizations.py to build visualization embeddings + +The program `make_visualizations.py` can be used to simplify the task of building visualization embeddings. The user can describe the required details as a `.json` file (a 'Makefile') and `make_visualizations.py` is a 'make' program that will build all the required visualizations and supporting bookkeeping. + +For an example of how to use this program and to embed visualizations we will assume that the current working directory contains the `.html` files that will have visualizations embedded in them, that the sub-directory `examples` contains all the python files that are to be visualized and that the sub-directories `js` and `css` have been created. Further assume `$OPT` is the directory containing the OPT release. + +The first step is to copy across some `.js` files and `.css` files. + + cp -r $OPT/js/* js + cp -r $OPT/css/* css + +The next step is to create the Makefile - say `make_viz.json` and to add the required information to the file. An example of such a file is given below. The required visualizations can be built as follows. + + python $OPT/make_visualizations.py make_viz.json + +Calling this again will rebuild everything. Alternatively, the program can be used to build visualizations for particular `.html` files listed in `make_viz.json` by listing them at the end of the command. For example + + python $OPT/make_visualizations.py make_viz.json file1.html file3.html + +For the example we assume the `.html` files are `file1.html`, `file2.html` and `file3.html` and that `file1.html` will have visualizations for `prog1_1.py` and `prog1_2.py`; `file2.html` will have a visualization for `prog2_1.py`; and `file3.html` will have a visualization for `prog3_1.py`. Further we assume that a local OPT server has been set up at the URL http://my.local.server/visualize.html. + +The following is a possible example for `make_viz.json` + + { + "visualizer_url": + "http://my.local.server/visualize.html", + + "default_viz_config": + { + "embeddedMode": true, + "codeDivWidth": 500 + }, + + "file1.html": + [ + "js/file1.js", + { + "examples/prog1_1.py":{}, + "examples/prog1_2.py":{"codeDivWidth": 400} + } + ], + + # hash to end of line is a comment + + "file2.html": + [ + "js/file2.js", + { + "examples/prog2_1.py":{} + } + ], + + "file3.html": + [ + "js/file3.js", + { + "examples/prog3_1.py":{"codeDivWidth": ""} + } + ] + } + +The first entry specifies the location of the server. If this is not present, the default is http://pythontutor.com/visualize.html. + +The second entry is the default configuration for the visualization paramenter used for the given html files. If this is not present the visualization parameters are set to the system defaults. + +All other top-level entries are for the `.html` files. The information for a given `.html` file consists of a `.js` file in which to put the trace and other bookkeeping information and a dictionary containing information for each program. The key is the file and the value is for visualization parameters. Any parameters given here override the corresponding value for the parameter in `default_viz_config`. The special value of the empty string removes that parameter from `default_viz_config`. In this example, when visualizing `prog1_2.py`, the code textbox width will be reduced to 400 pixels and for `prog3_1.py`, the code textbox width will be set to the system-wide default. + +If you already have a visualization set up and you would like to use this approach you will need to remove the OPT dependencies before `` in the `.html` file. When you then run the 'make' program it will re-introduce the dependencies in such a way that subseqent makes will replace this information with the updated information. + +At the end of the dependencies information injected into the `.html` file is a comment containing div entries that you can cut-and-paste into the position within the `.html` file where you would like the visualization to appear. The Makefile does not know where this is to be added and so this step needs to be done manually. Re-making this file will not remove this infomation from the body of the file. So, for example, in the header of `file3.html` you should find +the following. + + + + +For reference, we list the possible visualization parameters (with system-wide defaults - based on comments in `pytutor.js`) below. + +- heightChangeCallback: the function to call whenever the height of the visualization changes. If using the make program this is hard-wired in and can't be changed. +- updateOutputCallback: the function to call before rendering output. Disabled for the make program. +- executeCodeWithRawInputFunc: function to call when you want to re-execute the given program with some new user input. Disabled for the make program. +- embeddedMode: if true, it is a shorthand for hideOutput = true, allowEditAnnotations = false (default : false) +- startingInstruction: the trace entry to start execution at (0-indexed) (default : 0). +- verticalStack: if true then place code display above visualization, else place side-by-side (default: false) +- jumpToEnd: if true jump to the end of execution - the same as setting startingInstruction to the last trace entry (default:false). +- codeDivWidth: the width of the code text window in pixels (default : 350). +- codeDivHeight: the height of the code text window in pixels (default : 400). +- hideOutput: hide "Program output" display (default : false). +- editCodeBaseURL: the URL to visit when the user clicks 'Edit code'. +- allowEditAnnotations: allow user to edit per-step annotations (default: false). +- disableHeapNesting: if true, then render all heap objects at the top level (i.e., no nested objects) (default : true). +- drawParentPointer: if true, then draw environment diagram parent pointers for all frames (default : true). +- textualMemoryLabels: render references using textual memory labels rather than as jsPlumb arrows (default : true). +- showOnlyOutputs: show only program outputs and NOT internal data structures (default : true). diff --git a/v3/docs/opt-graphterm.md b/v3/docs/opt-graphterm.md new file mode 100644 index 000000000..e201f593b --- /dev/null +++ b/v3/docs/opt-graphterm.md @@ -0,0 +1,35 @@ +R. Saravanan from Texas A&M has integrated Online +Python Tutor with his [GraphTerm](http://code.mindmeldr.com/graphterm/) +project! + +Here is a brief message from him on how to set it up: + +------ + +I teach python to undergrads and my students have enjoyed using +PythonTutor to trace programs. I have modified PythonTutor slightly to +work within GraphTerm, which is a graphical terminal for unix computers +(written in python, of course!). So if you use the command line, you can +now trace your programs visually within the terminal. + +To install it and run it, use the following three commands on a Mac or Linux system: + + sudo easy_install graphterm + sudo gterm_setup # To setup the toolchain + gtermserver --terminal + +This will run the GraphTerm server and open up a browser terminal +window. In that window, you can `cd` to the directory containing the +program you want to trace (say `example.py`), and then type: + + gtutor example.py | gframe -f + +The first command outputs the HTML created by PythonTutor and the second +command renders it within the terminal (in an iframe). Click on the X on +the top right to end tracing. You can find more information in the +[GraphTerm project +page](http://code.mindmeldr.com/graphterm/start.html#code-tracing-using-python-tutor) + +You can see a live demo of Inline PythonTutor in this [older YouTube +video](http://youtu.be/jmrmjC1VYsc) (about 1:20 after the start) + diff --git a/v3/docs/opt-trace-format.md b/v3/docs/opt-trace-format.md new file mode 100644 index 000000000..a6cf9dcfa --- /dev/null +++ b/v3/docs/opt-trace-format.md @@ -0,0 +1,750 @@ +# Execution Trace Format + +This document describes the execution trace format that serves as the +interface between the frontend and backend of Online Python Tutor +(thereafter abbreviated as OPT). + +It is a starting point for anyone who wants to create a different +backend (e.g., for another programming language) or a different frontend +(e.g., for visually-impaired students). View it online at: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/opt-trace-format.md + +Look at the Git history to see when this document was last updated; the +more time elapsed since that date, the more likely things are +out-of-date. + +I'm assuming that you're competent in Python, JSON, command-line-fu, and +Google-fu. Feel free to email philip@pgbovine.net if you have questions. + +And please excuse the sloppy writing; I'm not trying to win any style awards here :) + + +## Trace Overview + +Before you continue reading, I suggest for you to first skim the Overview for Developers doc: +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/developer-overview.md + +Pay particular attention to what `generate_json_trace.py` is and how to run it: +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/developer-overview.md#two-quick-tips-for-starters + +Let's start with a simple example. Create an `example.py` file with the following contents: +```python +x = 5 +y = 10 +z = x + y +``` + +Now run: +``` +python generate_json_trace.py example.py +``` + +and you should see the following output: +```javascript +{ + "code": "x = 5\ny = 10\nz = x + y\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 15 + }, + "heap": {}, + "line": 3, + "event": "return" + } + ] +} +``` + +Recall that when OPT is deployed on a webserver, the backend generates this trace and sends it to the frontend, +where it will be turned into a visualization. + +[Click here](http://pythontutor.com/visualize.html#code=x+%3D+5%0Ay+%3D+10%0Az+%3D+x+%2B+y&mode=display&cumulative=false&py=2&curInstr=0) +to see the visualization of this trace (open it in a new window if possible). +Note that the trace object contains *all* of the information required to create this visualization. + +The trace is a JSON object with two fields: `code` is the string contents of the code +to be visualized, and `trace` is the actual execution trace, which consists of a list of execution points. + +In the above example, `trace` is a list of four elements since there are four execution points. +If you step through the visualization, you'll notice that there are exactly four steps, one for each +element of the `trace` list. +(Sometimes the frontend will filter out some redundant entries in `trace`, but a simplifying assumption +is that `trace.length` is the number of execution steps that the frontend renders.) + +Ok, still with me? Let's now dig into what an individual element in `trace` looks like. + + +## Execution Point Objects + +The central type of object in a trace is an "execution point", which represents the state of the computer's (abstract) +memory at a certain point in execution. Recall that a trace is an ordered list of execution points. + +The key concept to understand is that the frontend renders an execution point by simply looking at +the contents of the corresponding execution point object, **without consulting any of its neighbors**. + +Ok, let's now look at the **four** execution points in our above example in order. The first point +is what the frontend visualizes when it says "Step 1 of 3": + +```javascript + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + } +``` + +This is pretty much what an "empty" execution point object looks like. `line` shows the line number of the +line that is *about to execute*, which is line 1 in this case. And `event` is `step_line`, which indicates +that an ordinary single-line step event is about to occur. `func_name` is the function that's currently +executing: In this case, `` is the faux name for top-level code that's not in any function. +All of the other fields are empty, and if you look at the visualization, nothing is rendered in the "Frames" +or "Objects" panes. + +Ok now let's look at the second point, which corresponds to the frontend visualization when it says +"Step 2 of 3": + +```javascript + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + } +``` + +Ok note that `line` is now 2, which means that line 2 is *about* to execute (yes, this convention is a bit confusing, +but it's what the bdb debugger gives us). `globals` is now populated with one key-value pair: the global variable +`x` has a value of `5`. That makes sense since we just executed line 1 (from the previous execution point), +which was the code `x = 5`. If you look at the +[visualization at this step](http://pythontutor.com/visualize.html#code=x+%3D+5%0Ay+%3D+10%0Az+%3D+x+%2B+y&mode=display&cumulative=false&py=2&curInstr=1), +you'll see that `x` has been assigned to `5`. + +Ok let's keep marching to the next execution point, which is the one that corresponds to "Step 3 of 3" +in the frontend: + +```javascript + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + } +``` + +Now `line` is 3, because we're about to execute line 3 (we just executed lines 1 and 2). Notice that there is a +new key-value pair in`globals` showing that `y` has been assigned to `10`. No surprises here, since we just +executed the line `y = 10`. + +Ok now this is where I want to talk about `ordered_globals`, which is a list of global variables (i.e., +keys in `globals`) in the order that the frontend should visualize them. The backend appends variable +names in their order of appearance throughout execution. Why is this list necessary? Because `globals` +is an object whose keys are unsorted, so if you don't also keep an `ordered_globals` sorted list, +then the visualization might end up being jarring. For instance, at one execution point, it might +render `x` and then `y`, and at the next execution point, it might render `y` and then `x`, thereby +causing the visualization to "jitter" unnecessarily. And I've found that it looks aesthetically pleasing +when variables are sorted in their order of appearance as you step forwards through execution. + +Still with me? Ok, let's get to the final execution point, which corresponds to the frontend displaying +"Program terminated" ([click here](http://pythontutor.com/visualize.html#code=x+%3D+5%0Ay+%3D+10%0Az+%3D+x+%2B+y&mode=display&cumulative=false&py=2&curInstr=3) +to jump directly there). + +```javascript + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 15 + }, + "heap": {}, + "line": 3, + "event": "return" + } +``` + +This time, the event is a `return`, which signifies "returning" from the top-level module code (meaning the program +has terminated). Note that now there is another new variable `z`, which is bound to `15` since `z = x + y` just executed. +Note that, again, `ordered_globals` shows all three variables in their order of appearance. + +Ok, that's it for the basic tour. Next let's talk about what happens when the `heap` field isn't empty. + + +## Heap Objects + +The previous example contained only primitive values that JSON could encode directly within the `globals` object. +JSON natively supports numbers, strings, and boolean values (which map well to Python's "primitive" data types). +But what happens when the user's program contains compound +Python data types such as lists, tuples, dicts, sets, etc.? + +Create an `example.py` file with the following contents: +```python +x = [1, 2, 3] +y = ('Alice', 'Bob', 'Cindy') +z = {'carrot': 'vegetable', 'mouse': 'animal', 'rock': 'mineral'} +``` + +You should know how to generate a trace by now. The trace again contains **four** elements since there are +four execution steps (one for the very beginning of execution plus three executed lines). + +"Step 1 of 3" is boring since nothing is displayed. Let's jump to "Step 2 of 3" +(click here) + +The visualization now shows `x` pointing to a list containing `[1, 2, 3]`. This is the corresponding execution +point object: + +```javascript + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + } +``` + +Note that in `globals`, `x` now refers to a `["REF", 1]` object, which means a *reference* (pointer) to a heap +object with an ID of 1. + +Let's now look at `heap`, which is a mapping of heap object IDs to their contents. The current heap has one +object with an ID of 1. That object is a list of [1, 2, 3], which is encoded in JSON as: + +```javascript +["LIST", 1, 2, 3] +``` + +Let's skip forward to the end of execution ("Program terminated"): +click here + +Now there are three variables -- `x` points to a list, `y` points to a tuple, and `z` points to a dict. +This execution point object is getting kinda big: + +```javascript + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "TUPLE", + "Alice", + "Bob", + "Cindy" + ], + "3": [ + "DICT", + [ + "carrot", + "vegetable" + ], + [ + "mouse", + "animal" + ], + [ + "rock", + "mineral" + ] + ] + }, + "line": 3, + "event": "return" + } +``` + +Note that in `globals`, `x` refers to heap object 1, `y` to heap object 2, and `z` to 3. If you then look at `heap`, +you'll see that objects 1, 2, and 3 map to the corresponding list, tuple, and dict, respectively. + +Look at the comments at the top of `pg_encoder.py` to learn the JSON encoding formats for various Python data types: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/pg_encoder.py + +The basic idea behind the encoding format is that each compound object is encoded as a JSON list +where the first element is a string "tag" identifying its type (e.g., "LIST", "TUPLE", "DICT"). + +## Heap-to-Heap References + +In the above example, the heap objects contained only primitives (numbers and strings), which can be directly +encoded within those objects' representations in `heap`. + +But heap objects can themselves point to other heap objects. Let's look at the following example: + +```python +c = (1, (2, None)) +d = (1, c) +``` + +Jump to the end of execution and notice that: + +- `c` points to a tuple +- the second element of that tuple points to another tuple +- `d` points to a tuple whose second element points to what `c` points to + +Let's look at the execution point object that corresponds to this visualization: + +```javascript + { + "ordered_globals": [ + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "c": [ + "REF", + 1 + ], + "d": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + null + ], + "3": [ + "TUPLE", + 1, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "return" + } +``` + +What's going on here? Let's start with `globals` again. `c` points to heap object 1 (`["REF", 1]`), and `d` points +to heap object 3 (`["REF", 3]`). + +Let's now look at `heap`. Heap object 1 is: + +```javascript +["TUPLE", 1, ["REF", 2]] +``` + +What does this mean? It means that it represents a tuple whose first element is the number `1` and whose +second element is a reference (pointer) to heap object 2. + +Ok let's look at heap object 2: + +```javascript +["TUPLE", 2, null] +``` + +which corresponds to the Python tuple object `(2, None)`. + +Finally, heap object 3 (which `d` points to) is: + +```javascript +["TUPLE", 1, ["REF", 1]] +``` + +which corresponds to the Python object `(1, c)`. + +The ability to put "REF" objects inside of heap objects enables an arbitrary object graph to be +represented in the execution trace. + + +## Capturing `stdout` Output + +The `stdout` field in an execution point object represents the sum total of all output sent to stdout +so far during execution. For example, given this program: + +```python +print 1 +print "two" +print (3, 4, 5) +``` + +The complete trace object is: + +```javascript +{ + "code": "print 1\nprint \"two\"\nprint (3, 4, 5)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "1\ntwo\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "1\ntwo\n(3, 4, 5)\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "return" + } + ] +} +``` + +By now you should be getting pretty good at reading these objects :) + +Let's just focus on the `stdout` field at each execution point. Note that its contents start as an empty string +at the beginning of execution and then grow incrementally as more stuff is printed to stdout at each +subsequent execution point. If we grep for `stdout` in the trace, we see the following progression: + +```javascript + "stdout": "", + "stdout": "1\n", + "stdout": "1\ntwo\n", + "stdout": "1\ntwo\n(3, 4, 5)\n", +``` + +This isn't rocket science; but just be aware that `stdout` contains the cumulative contents of the stdout +buffer up to that execution point, not only what's been printed by the most recently executed line. + + +## Function Stack Frames + +So far our example programs contained no function calls. Let's now kick it up a notch and see an example +with function calls: + +```python +def foo(x, y, z): + return bar(x, y) + +def bar(a, b): + return baz(a) + +def baz(c): + return c + +result = foo(1, 2, 3) +``` + +Let's jump straight to Step 8 of 10, +when the program is about to return from the call to `baz`. + +Study the visualization for a bit. Note that there are four frames currently on the stack: globals, `foo`, `bar`, and `baz`. +Each frame consists of a name and a mapping between constituent variable names and values. There is a special +variable called `Return value` (stored in the trace as `__return__`), +which represents the value that `baz` is about to return to its caller. + +Let's now look at the execution point object corresponding to this visualization: + +```javascript + { + "ordered_globals": [ + "foo", + "bar", + "baz" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x", + "y", + "z" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a", + "b" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "c": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "c", + "__return__" + ] + } + ], + "globals": { + "bar": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ], + "baz": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "bar(a, b)", + null + ], + "3": [ + "FUNCTION", + "baz(c)", + null + ] + }, + "line": 8, + "event": "return" + }, +``` + +First things first: This is a `return` event occurring on line 8 (the `return c` line in `baz`). The currently-active +function is `baz`. There are three global variables: `foo`, `bar`, and `baz`, which all point to function objects +on the heap. + +The only new kind of field is `stack_to_render`, which is (unsurprisingly) a list of stack frames to render. +In this case, `stack_to_render` contains three elements -- the frames for `foo`, `bar`, and `baz`, in that exact order. +The frontend simply walks down `stack_to_render` and renders each frame in a similar way that it renders global variables. + +Let's now zoom in on one particular frame in `stack_to_render`. Here is the frame for `bar`: + +```javascript + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a", + "b" + ] + }, +``` + +For starters, `func_name` is the name of the function, and `is_highlighted` is true only if the current +frame is the "top-most" one (telling the frontend to highlight it in a brighter color). + +`encoded_locals` is a mapping from local variable names to their values, similar to how `globals` +provides a mapping from global variable names to their values. + +`ordered_varnames` is an ordered list of keys from `encoded_locals`, usually sorted by order of appearance +during execution. The global analogue for this field is `ordered_globals`. (I suppose this field should be named +`ordered_locals`, but I haven't gotten around to renaming yet.) + +`frame_id` is an integer that *uniquely* identifies this frame; the first function call (of *any* function) gets +a frame ID of 1, and then subsequent calls get successively increasing frame IDs. + +`unique_hash` is a unique string that identifies this frame. For now, a simple way +to construct `unique_hash` is by concatenating the frame's function name with `frame_id`. +Note that `unique_hash` seems redundant with `frame_id`, since the latter is already unique. +However, you'll see in the "Closures and Zombie Frames" section why `unique_hash` is required. + +Finally, ignore `is_parent`, `is_zombie`, and `parent_frame_id_list` for now. We'll cover those in the more advanced +"Closures and Zombie Frames" section below. + + +## Closures and Zombie Frames (advanced) + +(TODO: WRITE ME!) + +(TODO: talk about needing to append `_p` and `_z` onto `unique_hash` when a frame becomes a parent or zombie, +respectively, since the frontend needs to know when to refresh the display.) diff --git a/v3/docs/project-ideas.md b/v3/docs/project-ideas.md new file mode 100644 index 000000000..8f8fb4101 --- /dev/null +++ b/v3/docs/project-ideas.md @@ -0,0 +1,414 @@ +# Project Ideas + +This (messy!) document provides an overview of some project ideas for extending +Online Python Tutor (thereafter abbreviated as OPT). View it online at: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/project-ideas.md + +Email philip@pgbovine.net if you're interested in working on anything here, or if you have other +project ideas. + + +## Stylistic + +### Beautiful print-outs of OPT visualizations + +A lot of instructors want to print out their OPT visualizations to make handouts or lecture notes +for students. +However, the default CSS is optimized for on-screen viewing and not for printing, +so when you try to print the diagrams, they look ugly and unreadable. + +The project involves creating a custom CSS optimized for printing, especially on black-and-white printers. +Here is an example how-to guide to get started creating a CSS print style sheet ... +http://coding.smashingmagazine.com/2011/11/24/how-to-set-up-a-print-style-sheet/ + +Another idea is to get OPT to output SVG, PDF, or another +printer-friendly format. + + +### Responsive web design for OPT UI + +This is a good project for someone interested in visual and web design. + +Implement the principles of [responsive web design](http://en.wikipedia.org/wiki/Responsive_Web_Design) +so that OPT visualizations (and the surrounding user interface) look good on displays of many different sizes +ranging from smartphones to tablets to laptops to giant desktop monitors. + + +## Frontend + +### IPython Notebook integration + +It would be awesome to integrate OPT with the [IPython Notebook](http://ipython.org/notebook.html) so that visualizations +can be displayed inline within a notebook using, say, a `%visualize` magic keyword. + +In late 2012, I started messing around with a prototype but didn't get too far. + + +### Rich user input widgets + +Right now Online Python Tutor takes only code as input. However, it would be great to create widgets that allow +the user to input data into their code. That way, they can visualize the same code executing on different data +without changing the code. Currently, the only way to do this is to +"hard-code" the input data as global constants, which is cumbersome. + +Here are some examples of input widgets: + +- Text input widget to simulate stdin. This could be used with raw_input()/input() + +- Interactive widget to draw mathematical graphs (e.g., nodes and edges); useful for visualizing graph/tree manipulation algorithms +- A 2-D canvas where the user can draw points and lines in a coordinate system; useful for visualizing simple computational geometry algorithms +- A 2-D matrix of numbers or colored blocks for, say, a PacMan world +- Drag and drop an image; useful for visualizing image manipulation algorithms +- A text box that represents a file on the filesystem. Imagine a web-based I/O simulator where there would be a text box simulating a file object, and then I/O calls such as open, readline, etc. would be intercepted and visualized as iterating (pointing) to the file object one line at a time, reading each line into a string, etc. Writing into a file can also be visualized in this way too. And seeking, overwriting, appending, etc. + + +### Custom data structure visualizations + +Right now Online Python Tutor can render only basic Python data structures. + +While this is sufficient for teaching introductory CS courses, intermediate and advanced CS students must learn +algorithms involving more sophisticated data structures such as binary trees and graphs. +The goal of this project is to create a set of effective custom renderers for data structures +such as: + +- trees +- graphs +- numerical matrices +- simple 2D graphical worlds (e.g., for Pac-Man or Conway’s Game of Life) +- rendering lists of numbers as bar/line graphs, charts, and other quantitative data visualizations (e.g., using Google Charts API) +- file objects +- DSL components such as logic gates for a logic simulator written in Python, or proof trees for formal logic courses +- compiler data structures such as parser states, parse tables, AST construction, code generators, etc. +- relational algebra diagrams for database courses +- embedded image files (e.g., inline PNG images) to visualize Guzdial et al.'s [Media Computation](http://coweb.cc.gatech.edu/mediaComp-teach) algorithms online + +These renderers will make Online Python Tutor useful in a far larger variety of CS courses and online textbooks +beyond CS0/CS1 sorts of intro classes. + +One ultimate goal is to make OPT capable of visualizing classic AI, algorithm, and compiler textbook algorithms +that otherwise would need to be tediously built as one-off special-case visualizations. + +From an email excerpt in May 2013: { +I recently added a feature to Online Python Tutor (OPT) that enables user programs to output HTML/CSS/JS, in addition to printing to stdout. Thus, if a program calls html_output(" ... "), when OPT steps over that line, it will render the HTML string in a div. This makes it possible to generate a wide array of visualizations in pure Python (by simply constructing strings that represent legal HTML/CSS/JS). + +For the file I/O example, I can imagine creating a special File class that implements "file-like" stream I/O methods. Then the user program might look like: + + import VisualFile + f = VisualFile() + for line in open(f): + + + +The class definition of VisualFile includes the proper HTML-generation code to render a pretty HTML representation of the file's contents. And when methods iterate over the file, it can render an HTML representation with certain lines or characters highlighted to represent, say, the current file pointer position, etc. +} + + +There are (at least) two main ways to implement this feature: + +- Add custom data types to the trace and have the frontend render them + specially using JS visualization libraries such as d3. + +- Take advantage of OPT's (still-undocumented) ability to print + arbitrary HTML/CSS/JS to the canvas (just like how it can print stdout + output to a text box). This enables us to create custom data structure classes + with printHTML() methods that print their graphical representation to + the web page canvas. The dream here is to be able to write pure-Python modules for + each custom data type, which can "pretty-print" as HTML/CSS/JS. + + +### Custom rendering API and plugin system + +Right now Online Python Tutor renders Python data structures in a single, fixed way. +However, different instructors have different preferences for how they want certain objects to render +on-screen (and argue passionately for their specific tastes). +There is currently no way for them to specify these custom rendering schemes without mucking around with +intricate JavaScript code in the frontend. + +The goal of this project is to create a clean API and plugin architecture so that JavaScript-savvy instructors +can easily create custom renderers. + +The ultimate goal here is to completely replace one-off custom algorithm visualizations, whiteboard doodles, +and ad-hoc PowerPoint slide deck animations of CS concepts. + + +### Annotations for simplifying visualizations + +Right now OPT visualizes "everything" about program execution. However, that can easily lead to visual overload. +Let's think about implementing annotations to selectively show/hide different parts of execution, so that instructors +and students can hone in on what they find interesting. Examples: + +- annotate functions to trace/skip +- annotate data structures (or parts) to show/hide +- selectively expand or collapse data structure visualizations, which is useful for giant structures +- line-based breakpoints (currently implemented as a hack by puttin `# break` at the end of a line) +- conditional breakpoints + +Implementing annotations as ordinary code comments (rather than using a specialized UI) is elegant +because the instructor's code examples are self-contained in plain text and easily archivable outside of OPT. + +As a concrete use case, think about how to "clean up" the display of object-oriented programs. +Right now OPT naively visualizes all the steps that the Python interpreter takes when executing an +object-oriented program, which leads to all sorts of extraneous variables, frames, and pointers +lying around. + +Click here for an example. + +Think about how annotations can "clean up" such a big and hairy visualization. + + +### Semantic zooming and other visual customizations + +Right now OPT has only a limited number of ways to display visualizations, mostly set at the time +the "Visualize Execution" button is pressed. + +First, push some of the relevant options back to the visualizer UI itself, so they can be toggled +on a live visualization. + +Next, think about "semantic zooming" -- i.e., displaying different levels of granularity and focus +targeted toward different user audiences. For instance, fully expanding all the data structures +up-front might overwhelm beginners, so maybe start with them collapsed and then allow the user +to zoom in to expand them. Or maybe even "zooming out" to the point where data structures are +just rendered as plain-text (e.g., a list as `[1, 2, ..., 100]`, to take the focus off the heap details). + +Semantic zooming will help improve the "visual scalability" of the visualizations. + + +### Web-based authoring environment + +With a proper Web-based authoring environment, teachers and students can use +Online Python Tutor visualizations as the basis for annotated examples, +programming exercises, and quizzes. + +As a start, I've implemented a prototype of "annotation bubbles" for fine-grained annotation of visualization elements: + +![annotation bubbles](../opt-annotations.png) + +[Try a mock-up here!](http://pythontutor.com/commentary-bubbles-demo.html) + + +**Annotated code visualizations**: + +- Teachers could use it as a place to put their code examples and mini-lessons (so that they’re persistent, rather than sending out a bunch of gross URLs) + - Lesson text can be fine-grained -- e.g., specific text to accompany each execution point, or annotations atop individual objects. + - see the above screenshot for "annotation bubbles" prototype to label individual visualization elements + - Think about what asides or remarks would a teacher/mentor SAY OUT LOUD when stepping through code with a student/mentee. Those are probably the kinds of commentary that you'd want to put inside of visualizations. +- Students could use it as a Stackoverflow-like forum for asking questions + - Potentially powerful use case in MOOCs where students can directly annotate visualizations while debugging and then fire off a question to a discussion forum (with all required context). Again, OPT will be embedded within a larger MOOC courseware environment and be a segue into discussion forums. + - With a lightweight authoring environment, OPT can be used for embedding read-write visualizations. When a student is viewing code visualizations embedded within a textbook or lesson, they can mark annotations for parts they don’t understand and then send off the link to the course staff or discussion forum. So in essence, they’re interacting with the visualization rather than just passively consuming it. + + +**Exercises/quizzes**: Since we have rich visualizations and interactivity at our disposal, +we can come up with new forms of exercises that are more engaging than simply +"write a function that does X and then passes these 10 unit tests." +For example, one could imagine putting in blank slots as the user steps through the visualization, +and the user would need to fill in those slots with the appropriate values. (There is already a +not-yet-documented prototype of these sorts of pop-up questions, done by Brad Miller.) + + +### Visualizing orders of growth + +Think about how to convey orders of growth of algorithms across data sets of varying sizes. + +Notes from Peter N.: { +Peter suggested augmenting special data structure classes with callback hooks to the visualizer (like __str__ on steroids). This allows the visualizer to gracefully skip steps of the yucky internals of a data structure while just stepping through the significant parts. You can imagine instrumenting an Array class and visualizing compares, swaps, etc. for sorting algorithms. + +"Third, it would also be great to have a plot API, to plot the runtimes (or some other stat) as a function of input size N." + +"Fourth, while I have seen other algorithm systems where they annotate the code (by putting in annotations that say @step or something), I think we can get away without it. For example, if the problem is sorting a list of integers, don't annotate the algorithm: just pass it an input that consists not of a list of ints, but rather an annotaed list of annotated ints. An annotated lists increments a counter for every __getitem__ and __setitem__, and an annotated int increments a counter for every __lt__ and the like. It won't survive malicious attacks, but it will work for all but the actively uncooperative users." + +We also talked about visualizing orders of growth of code, such as loops, nested loops, etc. by visualizing how many times things execute and then how that changes as your input size changes. +} + + +## Backend + +### Shared visualization sessions + +My main high-level vision for where to take the shared editing is the following: + +1. The instructor tells students to join a shared session. +2. The instructor starts "driving" and typing code in the shared session. students watch along. +3. At any time, a student can click a "detach" button and detach his/her session from the teacher. Then the session acts just like regular Online Python Tutor. +4. At any time, a student can "reattach" to the shared session and follow the instructor again. + +The basic idea here is that students can follow along with an instructor but then "detach" at anytime to try out their own variations and experiments without interfering with other people's sessions. + +A related point/question is: what happens if two people try to simultaneously edit? i assume that they clobber each other's changes, right? in that case, it might be good to designate only ONE person who can edit, and everyone else just watches. or else a mischievous student can just delete everyone's code. of course, you can also have another "free-for-all" mode where everyone can edit. + + +Another take on this idea: +Adding real-time concurrent editing to these visualizations enables students to work together and tutor +one another while physically separated. A shared workspace can also be useful during both physical and +virtual lectures: As the instructor is lecturing using code visualizations, students can follow along by +viewing those same running examples on their laptops. At any point when curious or confused, students can +instantly diverge from the live example and try out their own variants +on-the-fly in private; they can then sync back to the "live feed" at any time. Students can also text +chat with one another about the lecture, all within the context of the live lecture materials. If students +opt-in to allowing the instructor to access such interaction data, then that could "close the loop" and +help the instructor improve future lectures. For instance, if 80% of students are silently diverging from +the live example at a certain point in lecture, then perhaps that part requires further clarification. + +**Update in Sept 2013**: I've created a first prototype integrating the [IPython shell with OPT](https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/opt-ipy.py). + +Watch this [YouTube video demo](http://www.youtube.com/watch?v=y3sVN7uaxDM) for an example of shared sessions. + + +### Visualizing different programming languages (especially JavaScript!) + +This project is great for someone who likes to hack on language implementations and runtimes. + +The OPT frontend can visualize programs written in any mainstream language, not just Python. +This project involves creating a backend for another language (e.g., Ruby, Java, JavaScript, C, C++, Scheme). +All the backend needs to do is to generate an execution trace in the following format: + +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/opt-trace-format.md + +And the OPT frontend should be able to visualize it! + +In particular, I think a **JavaScript backend** would be amazing. +By hacking the [narcissus](https://github.com/mozilla/narcissus) meta-circular JavaScript interpreter, +you should be able to implement a JavaScript visualizer purely in the browser. You get the benefits of +low latency, offline access, and no security concerns that plague traditional server-side apps. How cool is that?!? + +Check out backends that other people have already written: + +- [Online JavaScript Tutor](http://jstutor.herokuapp.com/) by Hung Doan +- [Online Java Tutor](http://cscircles.cemc.uwaterloo.ca/java_visualize/) by David Pritchard +- [Online Ruby Tutor](http://www.onlinerubytutor.com/) by Daniel Stutzman +- [Blockly + OPT](http://epleweb.appspot.com/) by Pier Giuliano Nioi + +Other misc. implementation notes: + +- The [Chicory Java trace generator for Daikon](http://groups.csail.mit.edu/pag/daikon/download/doc/daikon_manual_html/daikon_7.html#SEC69) +might be a good basis for writing a Java backend for OPT. Or take a look at [jdb](http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/jdb.html), which +should be similar to how Online Python Tutor uses Python's pdb module to generate traces. + +- My [master's thesis](http://pgbovine.net/projects/pubs/guo-mixedlevel-mengthesis.pdf) from 2006 +describes one possible technique for building a C-language backend based upon the [Valgrind](http://www.valgrind.org) +tool. More importantly, it describes the difficulties involved in creating a robust execution +trace generator for C and C++. +It should be much easier to build a backend for a memory- and type-safe language, though :) + + +### Skulpt (Python-in-JavaScript) backend + +This project is appropriate for someone with advanced knowledge of hacking a Python interpreter +who is willing to make a substantive time commitment. + +Right now the OPT backend runs Python code on the server, but it would be super-cool to create a "backend" +that runs entirely in the browser. Modifying Skulpt -- http://www.skulpt.org/ -- is the leading contender here, +since I am in touch with its main developers. + +The basic idea is to use Skulpt to generate a JavaScript trace object (all within the web browser without +a server call) and then construct a new ExecutionVisualizer with that trace object as a parameter. +Read "Direct embedding" and the associated code for more detailed info: +https://github.com/pgbovine/OnlinePythonTutor/blob/master/v3/docs/embedding-HOWTO.md#direct-embedding + + +Main Advantages: + - Enables fine-grained tracing of expression and sub-expression evaluation, which has clear pedagogical benefits; right now OPT can only single-step over one line at a time since it relies on the Python bdb debugger. + - Enables an interactive REPL that incrementally takes in user inputs rather than just executing batch programs; this can lead to better interactivity and responsiveness. + - Supports on-demand evaluation and in-memory storage of (relatively) large data structures such as a 100,000-element dictionary for a spell checker program; right now OPT must send that giant dictionary in a trace (encoded in an inefficient format). + - Works in "offline mode" for students in regions without reliable Internet access + - Enables on-the-fly editing of data by clicking on and editing the visualized objects (since they're just JavaScript objects) ... Smalltalk style :) + - Might enable [Bret-Victor-esque](http://vimeo.com/36579366) "live coding" where the display updates nearly instantaneously as you are coding + +From an OPT user: +"The second idea came about when teaching about return values, but it applies to any "compound" expression that is more than a single function call or assignment of a literal to a variable. I often find myself showing how Python processes a statement like "x = len(s) + 1" by showing how individual pieces are computed sequentially. Right now, OPT treats that as a single, atomic line, so students don't see clearly how it first calls len(s), "replaces" that with its return value, performs the addition, and then stores the result of that into x. I draw things like this on the board with underlining and arrows (e.g., "len(s)" is underlined, with an arrow pointing down to its return value) to show where data goes and how everything is evaluated. I expect that could be automated and displayed in something like OPT. I'm not sure I'm being clear, but I hope that makes some sense. I recognize that this doesn't fit that well into the current model, which is focused on one step being one line of code, so it may be a bit of a pipe-dream." + +Tips & Tricks: + - From Brad Miller: http://blog.bonelakesoftware.com/2011/03/adding-module-to-skulpt.html and http://blog.bonelakesoftware.com/2011/02/python-in-your-browser-in-javascript.html + - From Scott Graham, when I asked him whether Skulpt implements Python 2 or 3: “Mostly 2-ish. Some object hierarchy things take after 3's simplified semantics.” + +Dec 2012: Brython -- http://www.brython.info/index_en.html -- might also be a contender here, since it supports lots of Python 3 (except for OOP, lambdas, exceptions, and generators, afaik). + +May 2013: In the experience of Python veterans, the main caveat with targeting one of these alternative Python implementations is that they don't support the full ("official") Python language. +Thus, users might be frustrated that code they type into this tutor doesn't run exactly like code they type into the official Python interpreter. +That said, though, a Skulpt implementation would still be useful, as long as users understand its limitations and caveats, and that it doesn't support the full Python language in all of its glory (or its weird edge-case behaviors). + +Nov 2013: Currently, the only way to get the official CPython in JS is to use https://github.com/replit/empythoned, +which is used by the more general https://github.com/replit/jsrepl and https://github.com/replit/repl.it projects. +However, handling `stdin` is really kludgy and works well only on Chrome/Safari ... kinda works in Firefox, and not at all in IE: https://github.com/replit/jsrepl#standard-input-hacks +And it's unclear how to get the CPython code to communicate with the custom JS viz code ... so this is still not a shoo-in yet :/ The technology is still not there, ugh! + + + +### Hack CPython to enable sub-expression-level tracing + +Right now OPT uses [bdb](http://docs.python.org/2/library/bdb.html) to trace at line-level granularity. +However, lots of users want sub-expression-level granularity, such as this user: + +"The second idea came about when teaching about return values, but it applies to any "compound" expression that is more than a single function call or assignment of a literal to a variable. I often find myself showing how Python processes a statement like "x = len(s) + 1" by showing how individual pieces are computed sequentially. Right now, OPT treats that as a single, atomic line, so students don't see clearly how it first calls len(s), "replaces" that with its return value, performs the addition, and then stores the result of that into x. I draw things like this on the board with underlining and arrows (e.g., "len(s)" is underlined, with an arrow pointing down to its return value) to show where data goes and how everything is evaluated. I expect that could be automated and displayed in something like OPT. I'm not sure I'm being clear, but I hope that makes some sense. I recognize that this doesn't fit that well into the current model, which is focused on one step being one line of code, so it may be a bit of a pipe-dream." + +One way to get finer-grained tracing is to use Skulpt (see above), but the problem with Skulpt is that it's not +"real" Python (i.e., CPython), so that code typed into OPT won't run exactly the same as code run by CPython. + +The goal of this project is to hack CPython all the way from the compiler frontend to the bytecode generator +and debugger hooks to add **fine-grained** information into the bytecode to enable sub-expression-level tracing. +I envision the result as being a custom CPython interpreter that I can compile and run on the OPT server, which +will run real CPython code, albeit with bytecode that's enhanced with extra metadata. The resulting interpreter +should be compatible with pure-Python modules, and hopefully compatible with C modules as well, as long as `PyObject` +and other internal guts aren't altered too much. But I don't care a ton about C module compatibility since OPT +doesn't really use C modules. (Update in July 2013 -- it seems like hacks to CPython core data structures are +intrusive enough to preclude C module object compatibility. But that's not a big deal.) + + +#### Early Prototype (July 2013) + +In early July 2013, I made some initial steps toward this goal as a proof-of-concept and am +encouraged by my findings so far. + +[**Try the prototype now**](http://pythontutor.com/visualize.html#py=2crazy) by selecting +"2.crazy" as the Python version. + +Specifically, try the prototype on a simple example. + +And see the underlying [Py2crazy](https://github.com/pgbovine/Py2crazy/) project for more details. + +Note that the (approximate) tokens corresponding to the +currently-executing bytecode instruction is highlighed are yellow. + +In short, I think that with enough elbow grease to hack on CPython innards, +you can get pretty good line/column number information into bytecodes; +then Online Python Tutor can do much finer-grained stepping within expressions. + +Line-level stepping is too coarse, and bytecode-level might be too fine-grained; +so I imagine that with some good filtering heuristics, we can hit a sweet spot of +stepping at a level that instructors like. In particular, lots of bytecodes are executed for +loading constants when initializing, say, a list; those can probably be skipped since +they're un-interesting. + + +### Offline mode for use as a production debugger + +From a reader comment: "As a teaching tool it is invaluable, not only for teaching python, but for programming in general (what is going on in memory...). +I've actively used it to debug / trace short pieces of code. Any chance of having it offline (and without the limitations of an online tool like the inability to load all modules)? That would make a perfect pdb visualization tool." + +You could imagine running a webserver on localhost and using OPT as a graphical frontend for pdb; interesting idea! + +Notes from an email I sent on 2012-10-24: { + +One possible offline application is to use OPT as a visual debugger for pdb (http://docs.python.org/library/pdb.html). The use case here would be: + +1.) The user launches a special version of pdb augmented with OPT. +2.) The user types in some Python command to visualize. +3.) pdb starts a local webserver and pops up a web browser window. +4.) The visualization appears in the web browser window, and the user can interact with it. + +Actually, now that I think about it, you can start even simpler without pdb. Here is an even simpler starting point: + +1.) The user writes some code to visualize in a file on his/her computer. +2.) The user runs a special Python script that runs OPT on that file, launches a local webserver, and pops open a web browser window. +3.) The visualization appears in the web browser window. + +Ok, that seems simpler as a starting point, and it will still teach you about local webservers and interfacing between the OPT backend and frontend. + +Then comes the question of why this offline mode might be useful (beyond being a good learning exercise). After all, just by following the directions in the developer overview docs, you've essentially set up OPT to run offline without an Internet connection. So my plan above doesn't give you any extra functionality. However, I think the potential lies in integrating with a real debugger such as pdb, so that you can run large Python programs, pause execution, and then visualize selected data structures (rather than all data structures in the program, which can get overwhelming). + +Ok sorry that was mostly me thinking out loud. + +} + +Ha, I guess you can call this **"Offline Python Tutor"**! + diff --git a/v3/docs/user-FAQ.md b/v3/docs/user-FAQ.md new file mode 100644 index 000000000..cb996b8e2 --- /dev/null +++ b/v3/docs/user-FAQ.md @@ -0,0 +1,49 @@ +# Frequently Asked Questions from users of Online Python Tutor + +Email philip@pgbovine.net if you have a question that isn't addressed here. + +#### I thought all objects in Python are (conceptually) on the heap; why does Online Python Tutor render primitive values (e.g., numbers, strings) inside of stack frames? + +This was a design decision made to keep the display less cluttered; +if we were truly faithful to Python's semantics, that would result in far too many arrows (pointers) being drawn. +However, note that since primitives are **immutable** and thus behave identically regardless of aliasing, +it doesn't matter whether they're rendered in the stack or heap. + +Update on 2013-01-06: I've just added a drop-down menu option with two choices: +"inline primitives and nested objects" versus "render all objects on the heap". +If you want to render all objects on the heap, select the latter option. +To avoid too many arrows being drawn, also toggle the "draw references using arrows" option +to "use text labels for references". + + +#### I don't like your default toggle options. Can I set different defaults? + +Of course! Toggle options are customizable via the query string. Here are the default settings: + +http://pythontutor.com/visualize.html#cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=2 + +For example, if you want to default to Python 3, visit: +http://pythontutor.com/visualize.html#&py=3 + +Or if you want to render all objects on the heap and use text label references, visit: +http://pythontutor.com/visualize.html#heapPrimitives=true&textReferences=true + +The possibilities are endless! (or 2^6 or something.) + + +#### Unicode strings look weird or broken + +Yep, that's a known bug; Online Python Tutor currently doesn't have much support for Unicode. + + +#### Can Online Python Tutor visualize programs that accept user input via, say, raw_input()? + +*Update on 2013-04-29*: Yes, try raw_input() now!!! + +*Old lame and outdated answer*: +No, sorry it can't currently do that; and chances are, it won't ever be able to unless I significantly rewrite the backend. + + +#### Did you know that stepping through code with generators looks weird when "display frames of exited functions" is selected? + +Yep, this is a known bug, but sadly the fix isn't straightforward at the moment. diff --git a/v3/embedding-demo.html b/v3/embedding-demo.html new file mode 100644 index 000000000..43ad41147 --- /dev/null +++ b/v3/embedding-demo.html @@ -0,0 +1,68 @@ + + + + + Online Python Tutor embedding demo + + + + + + + + + + + + + + + + + + + + + + + + + +

      Recursive list sum (from pythontutor.com home page):

      + +
      + + +

      Towers of Hanoi:

      + +
      + + +

      Happy Birthday:

      + +
      + + + +

      This one tests your knowledge:

      +
      + +
      +

      Check your understanding

      + Enter the value of the variable a after the current line is executed. + + + +

      +
      +
      + +
      + + + + diff --git a/v3/embedding-demo.js b/v3/embedding-demo.js new file mode 100644 index 000000000..0fd466232 --- /dev/null +++ b/v3/embedding-demo.js @@ -0,0 +1,200 @@ +// To embed Online Python Tutor visualizations into embedding-demo.html ... + +// 1. Run generate_json_trace.py to generate execution traces as JavaScript variables. +// (WARNING: The following lines are VERY LONG.) + +// Run: +// python generate_json_trace.py --create_jsvar=listSumTrace tests/backend-tests/list_sum.txt +// and copy-and-paste the output line into here: +var listSumTrace = {"code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["listSum"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"__return__": 0, "numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"__return__": 3, "numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"__return__": 5, "numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": 6, "numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList", "total"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"total": 6, "myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "return"}]}; + +// Do the same for +// python generate_json_trace.py --create_jsvar=hanoiTrace tests/example-code/towers_of_hanoi.txt +var hanoiTrace = {"code": "# move a stack of n disks from stack a to stack b,\n# using tmp as a temporary stack\ndef TowerOfHanoi(n, a, b, tmp):\n if n == 1:\n b.append(a.pop())\n else:\n TowerOfHanoi(n-1, a, tmp, b)\n b.append(a.pop())\n TowerOfHanoi(n-1, tmp, b, a)\n \nstack1 = [4,3,2,1]\nstack2 = []\nstack3 = []\n \n# transfer stack1 to stack3 using Tower of Hanoi rules\nTowerOfHanoi(len(stack1), stack1, stack3, stack2)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 3, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"TowerOfHanoi": ["REF", 1]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null]}, "line": 11, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1]}, "line": 12, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"]}, "line": 13, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 16, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 4, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f4", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 4, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f4", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 4, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f4", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2, 1], "3": ["LIST"], "4": ["LIST"]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 4, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "__return__": null, "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f4", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2], "3": ["LIST", 1], "4": ["LIST"]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3, 2], "3": ["LIST", 1], "4": ["LIST"]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST", 1], "4": ["LIST", 2]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 5, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f5", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST", 1], "4": ["LIST", 2]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 5, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f5", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST", 1], "4": ["LIST", 2]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 5, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f5", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST", 1], "4": ["LIST", 2]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 5, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "__return__": null, "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f5", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST"], "4": ["LIST", 2, 1]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 3, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "__return__": null, "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f3", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST"], "4": ["LIST", 2, 1]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 3], "3": ["LIST"], "4": ["LIST", 2, 1]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 7, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f7", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 7, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f7", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 7, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f7", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3], "4": ["LIST", 2, 1]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 7, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "__return__": null, "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f7", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3], "4": ["LIST", 2]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3], "4": ["LIST", 2]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3, 2], "4": ["LIST"]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 8, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f8", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3, 2], "4": ["LIST"]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 8, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f8", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3, 2], "4": ["LIST"]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 8, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f8", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4, 1], "3": ["LIST", 3, 2], "4": ["LIST"]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "b": ["REF", 3], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 8, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "__return__": null, "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f8", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3, 2, 1], "4": ["LIST"]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 6, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 4], "__return__": null, "b": ["REF", 3], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f6", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3, 2, 1], "4": ["LIST"]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 2, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "__return__": null, "b": ["REF", 3], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f2", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3, 2, 1], "4": ["LIST"]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 4], "3": ["LIST", 3, 2, 1], "4": ["LIST"]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 11, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f11", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 11, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f11", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 11, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f11", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2, 1], "4": ["LIST", 4]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 11, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "__return__": null, "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f11", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2], "4": ["LIST", 4, 1]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 3, 2], "4": ["LIST", 4, 1]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 3], "4": ["LIST", 4, 1]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 12, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f12", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 3], "4": ["LIST", 4, 1]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 12, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f12", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 3], "4": ["LIST", 4, 1]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 12, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f12", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 3], "4": ["LIST", 4, 1]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "b": ["REF", 2], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 12, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 4], "__return__": null, "b": ["REF", 2], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f12", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST", 3], "4": ["LIST", 4]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 10, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 3], "__return__": null, "b": ["REF", 2], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f10", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST", 3], "4": ["LIST", 4]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST", 3], "4": ["LIST", 4]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 14, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f14", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 14, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f14", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 14, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f14", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2, 1], "3": ["LIST"], "4": ["LIST", 4, 3]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 14, "encoded_locals": {"tmp": ["REF", 4], "a": ["REF", 2], "__return__": null, "b": ["REF", 3], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f14", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 1], "4": ["LIST", 4, 3]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST", 2], "3": ["LIST", 1], "4": ["LIST", 4, 3]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 1], "4": ["LIST", 4, 3, 2]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 15, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f15", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 1], "4": ["LIST", 4, 3, 2]}, "line": 3, "event": "call"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 15, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f15", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 1], "4": ["LIST", 4, 3, 2]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 15, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f15", "ordered_varnames": ["n", "a", "b", "tmp"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST", 1], "4": ["LIST", 4, 3, 2]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 15, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "__return__": null, "b": ["REF", 4], "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_jhash": "TowerOfHanoi_f15", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST"], "4": ["LIST", 4, 3, 2, 1]}, "line": 5, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "b": ["REF", 4], "n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 13, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "__return__": null, "b": ["REF", 4], "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f13", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST"], "4": ["LIST", 4, 3, 2, 1]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "b": ["REF", 4], "n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp"]}, {"frame_id": 9, "encoded_locals": {"tmp": ["REF", 2], "a": ["REF", 3], "__return__": null, "b": ["REF", 4], "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f9", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST"], "4": ["LIST", 4, 3, 2, 1]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "TowerOfHanoi", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"tmp": ["REF", 3], "a": ["REF", 2], "__return__": null, "b": ["REF", 4], "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "TowerOfHanoi", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "TowerOfHanoi_f1", "ordered_varnames": ["n", "a", "b", "tmp", "__return__"]}], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST"], "4": ["LIST", 4, 3, 2, 1]}, "line": 9, "event": "return"}, {"ordered_globals": ["TowerOfHanoi", "stack1", "stack2", "stack3"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"stack3": ["REF", 4], "stack2": ["REF", 3], "TowerOfHanoi": ["REF", 1], "stack1": ["REF", 2]}, "heap": {"1": ["FUNCTION", "TowerOfHanoi(n, a, b, tmp)", null], "2": ["LIST"], "3": ["LIST"], "4": ["LIST", 4, 3, 2, 1]}, "line": 16, "event": "return"}]}; + +// And finally, let's generate one last trace and copy it in here: +// python generate_json_trace.py --create_jsvar=happyTrace tests/example-code/happy.txt +var happyTrace = {"code": "# From \"Teaching with Python\" by John Zelle\ndef happy():\n print(\"Happy Birthday to you!\")\n\ndef sing(P):\n happy()\n happy()\n print(\"Happy Birthday dear \" + P + \"!\")\n happy()\n\n# main\nsing(\"Fred\")\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 2, "event": "step_line"}, {"ordered_globals": ["happy"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 12, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 5, "event": "call"}, {"ordered_globals": ["happy", "sing"], "stdout": "", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 2, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f2", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["happy", "sing"], "stdout": "", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 2, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f2", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 2, "encoded_locals": {"__return__": null}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f2", "ordered_varnames": ["__return__"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "return"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\n", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 3, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f3", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 3, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f3", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 3, "encoded_locals": {"__return__": null}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f3", "ordered_varnames": ["__return__"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "return"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 4, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f4", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 4, "encoded_locals": {}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f4", "ordered_varnames": []}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", "func_name": "happy", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"P": "Fred"}, "is_highlighted": false, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P"]}, {"frame_id": 4, "encoded_locals": {"__return__": null}, "is_highlighted": true, "is_parent": false, "func_name": "happy", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "happy_f4", "ordered_varnames": ["__return__"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 3, "event": "return"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", "func_name": "sing", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": null, "P": "Fred"}, "is_highlighted": true, "is_parent": false, "func_name": "sing", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "sing_f1", "ordered_varnames": ["P", "__return__"]}], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 9, "event": "return"}, {"ordered_globals": ["happy", "sing"], "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", "func_name": "", "stack_to_render": [], "globals": {"sing": ["REF", 2], "happy": ["REF", 1]}, "heap": {"1": ["FUNCTION", "happy()", null], "2": ["FUNCTION", "sing(P)", null]}, "line": 12, "event": "return"}]}; + +var bradstrace = { + "code": "a = 0\nb = 0\na = a + 1\nb = a\nprint b\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": 0 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": 0, + "b": 0 + }, + "heap": {}, + "line": 3, + "question": {"text":"what is the value of a after this line?", + "correct":"globals.a", + "div":"bradsDiv_modal", + "feedback":"First look at the current value of a. How much are we adding to that?" + }, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": 1, + "b": 0 + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": 1, + "b": 1 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": 1, + "b": 1 + }, + "heap": {}, + "line": 5, + "event": "return" + } + ] +}; + + + +// 2. When the HTML document finishes loading, populate the three divs +// (listSumDiv, hanoiDiv, happyDiv) with the visualizations +// corresponding to the respective traces. +$(document).ready(function() { + + // 3. Create a new ExecutionVisualizer object for each visualization. + // (See js/pytutor.js for the full specs of ExecutionVisualizer.) + // + // The basic idea is that the parent div name is passed as the first argument, + // and the trace object is passed as the second argument. + // + // The third argument contains optional parameters. + + // Note that "embeddedMode: true" makes the visualizer appear more compact on-screen. + // editCodeBaseURL is the base URL to prepend onto the 'Edit code' link. + + + // A more subtle point is that when some div in your HTML webpage + // (such as a visualizer div) expands in height, it will "push down" + // all divs below it, but the SVG arrows rendered by jsPlumb + // WILL NOT MOVE. Thus, they will be in the incorrect location + // unless you call redrawAllConnectors(). + // + // We use the "heightChangeCallback" optional parameter to force redraw + // of all SVG arrows of ALL visualizers, whenever the height of one changes. + // + // Alternatively, here is one jQuery plugin that you can use to detect div height changes: + // http://benalman.com/projects/jquery-resize-plugin/ + // + // A related trick you can implement is to make a div never shrink in height once it's grown; + // that way, you can avoid lots of jarring jumps and (inefficient) redraws. + + var bradsVisualizer = new ExecutionVisualizer('bradsDiv', bradstrace, + {embeddedMode: true, + heightChangeCallback: redrawAllVisualizerArrows, + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); + + // Render listSumTrace inside of listSumDiv + var listSumVisualizer = new ExecutionVisualizer('listSumDiv', listSumTrace, + {embeddedMode: true, + heightChangeCallback: redrawAllVisualizerArrows, + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); + + // The "startingInstruction: 15" optional parameter means to jump to step 15 + // in the visualization when it loads. (The HTML webpage will actually display + // "Step 16 of 64" since indices are zero-indexed.) + // + // verticalStack means to stack the code and visualizations vertically atop one another + // (rather than side-by-side) + var hanoiVisualizer = new ExecutionVisualizer('hanoiDiv', hanoiTrace, + {embeddedMode: true, + startingInstruction: 15, + verticalStack: true, + heightChangeCallback: redrawAllVisualizerArrows, + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); + + // "embeddedMode: false" displays the full visualizer widget with the "Program Output" pane + // "jumpToEnd: true" means to jump to the end of execution upon loading. + var happyVisualizer = new ExecutionVisualizer('happyDiv', happyTrace, + {embeddedMode: false, + jumpToEnd: true, + codeDivWidth: 450, + codeDivHeight: 150, + // no need for heightChangeCallback since + // this is the "bottom-most" visualizer, + // so no arrows appear below it + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); + + function redrawAllVisualizerArrows() { + if (listSumVisualizer) listSumVisualizer.redrawConnectors(); + if (hanoiVisualizer) hanoiVisualizer.redrawConnectors(); + if (happyVisualizer) happyVisualizer.redrawConnectors(); + } + + + // Call redrawConnectors() on all visualizers whenever the window is resized, + // since HTML elements might have moved during a resize. The SVG arrows rendered + // by jsPlumb don't automatically get re-drawn in their new positions unless + // redrawConnectors() is called. + $(window).resize(redrawAllVisualizerArrows); +}); diff --git a/v3/example-code/aliasing.golden b/v3/example-code/aliasing.golden new file mode 100644 index 000000000..d0f3f9997 --- /dev/null +++ b/v3/example-code/aliasing.golden @@ -0,0 +1,2067 @@ +{ + "code": "x = [1, 2, 3]\ny = [4, 5, 6]\nz = y\ny = x\nx = z\n\nx = [1, 2, 3] # a different [1, 2, 3] list!\ny = x\nx.append(4)\ny.append(5)\nz = [1, 2, 3, 4, 5] # a different list!\nx.append(6)\ny.append(7)\ny = \"hello\"\n\n\ndef foo(lst):\n lst.append(\"hello\")\n bar(lst)\n\ndef bar(myLst):\n print(myLst)\n\nfoo(x)\nfoo(z)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 2 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ], + "bar": [ + "REF", + 6 + ], + "foo": [ + "REF", + 5 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing.golden_py3 b/v3/example-code/aliasing.golden_py3 new file mode 100644 index 000000000..f56be9792 --- /dev/null +++ b/v3/example-code/aliasing.golden_py3 @@ -0,0 +1,2067 @@ +{ + "code": "x = [1, 2, 3]\ny = [4, 5, 6]\nz = y\ny = x\nx = z\n\nx = [1, 2, 3] # a different [1, 2, 3] list!\ny = x\nx.append(4)\ny.append(5)\nz = [1, 2, 3, 4, 5] # a different list!\nx.append(6)\ny.append(7)\ny = \"hello\"\n\n\ndef foo(lst):\n lst.append(\"hello\")\n bar(lst)\n\ndef bar(myLst):\n print(myLst)\n\nfoo(x)\nfoo(z)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 2 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ], + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 22, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ], + "bar": [ + "REF", + 5 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/example-code/aliasing.txt b/v3/example-code/aliasing.txt similarity index 54% rename from example-code/aliasing.txt rename to v3/example-code/aliasing.txt index e866323d5..459b370db 100644 --- a/example-code/aliasing.txt +++ b/v3/example-code/aliasing.txt @@ -1,19 +1,25 @@ -# Example of aliasing x = [1, 2, 3] +y = [4, 5, 6] +z = y +y = x +x = z + +x = [1, 2, 3] # a different [1, 2, 3] list! y = x x.append(4) y.append(5) -z = [1, 2, 3, 4, 5] +z = [1, 2, 3, 4, 5] # a different list! x.append(6) y.append(7) y = "hello" + def foo(lst): lst.append("hello") bar(lst) def bar(myLst): - print myLst + print(myLst) foo(x) foo(z) diff --git a/v3/example-code/aliasing/aliasing1.golden b/v3/example-code/aliasing/aliasing1.golden new file mode 100644 index 000000000..00383dd48 --- /dev/null +++ b/v3/example-code/aliasing/aliasing1.golden @@ -0,0 +1,98 @@ +{ + "code": "a = (1, (2, (3, None)))\nb = a[1]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "b": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing1.golden_py3 b/v3/example-code/aliasing/aliasing1.golden_py3 new file mode 100644 index 000000000..00383dd48 --- /dev/null +++ b/v3/example-code/aliasing/aliasing1.golden_py3 @@ -0,0 +1,98 @@ +{ + "code": "a = (1, (2, (3, None)))\nb = a[1]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "b": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing1.txt b/v3/example-code/aliasing/aliasing1.txt new file mode 100644 index 000000000..f6d9efea8 --- /dev/null +++ b/v3/example-code/aliasing/aliasing1.txt @@ -0,0 +1,2 @@ +a = (1, (2, (3, None))) +b = a[1] diff --git a/v3/example-code/aliasing/aliasing2.golden b/v3/example-code/aliasing/aliasing2.golden new file mode 100644 index 000000000..ab6c203f4 --- /dev/null +++ b/v3/example-code/aliasing/aliasing2.golden @@ -0,0 +1,90 @@ +{ + "code": "c = (1, (2, None))\nd = (1, c)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "c": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "c": [ + "REF", + 1 + ], + "d": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + null + ], + "3": [ + "TUPLE", + 1, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing2.golden_py3 b/v3/example-code/aliasing/aliasing2.golden_py3 new file mode 100644 index 000000000..ab6c203f4 --- /dev/null +++ b/v3/example-code/aliasing/aliasing2.golden_py3 @@ -0,0 +1,90 @@ +{ + "code": "c = (1, (2, None))\nd = (1, c)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "c": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "c": [ + "REF", + 1 + ], + "d": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + null + ], + "3": [ + "TUPLE", + 1, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing2.txt b/v3/example-code/aliasing/aliasing2.txt new file mode 100644 index 000000000..57984f2ff --- /dev/null +++ b/v3/example-code/aliasing/aliasing2.txt @@ -0,0 +1,2 @@ +c = (1, (2, None)) +d = (1, c) diff --git a/v3/example-code/aliasing/aliasing3.golden b/v3/example-code/aliasing/aliasing3.golden new file mode 100644 index 000000000..a0bded930 --- /dev/null +++ b/v3/example-code/aliasing/aliasing3.golden @@ -0,0 +1,335 @@ +{ + "code": "l1, l2, l3, l4 = 1, 2, 3, 4\n\nt1 = (l1, l2)\nt2 = (l3, l4)\nt = (t1, t2)\nu = ((1, 2), (3, 4))\nv = u[0]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "l4": 4, + "t1": [ + "REF", + 1 + ], + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "5": [ + "TUPLE", + 1, + 2 + ], + "6": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t", + "u", + "v" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "v": [ + "REF", + 5 + ], + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "5": [ + "TUPLE", + 1, + 2 + ], + "6": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing3.golden_py3 b/v3/example-code/aliasing/aliasing3.golden_py3 new file mode 100644 index 000000000..a0bded930 --- /dev/null +++ b/v3/example-code/aliasing/aliasing3.golden_py3 @@ -0,0 +1,335 @@ +{ + "code": "l1, l2, l3, l4 = 1, 2, 3, 4\n\nt1 = (l1, l2)\nt2 = (l3, l4)\nt = (t1, t2)\nu = ((1, 2), (3, 4))\nv = u[0]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "l4": 4, + "t1": [ + "REF", + 1 + ], + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1 + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "5": [ + "TUPLE", + 1, + 2 + ], + "6": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "l4", + "l2", + "l3", + "l1", + "t1", + "t2", + "t", + "u", + "v" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "v": [ + "REF", + 5 + ], + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ], + "l4": 4, + "l2": 2, + "l3": 3, + "l1": 1, + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "5": [ + "TUPLE", + 1, + 2 + ], + "6": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing3.txt b/v3/example-code/aliasing/aliasing3.txt new file mode 100644 index 000000000..fcb9e9c63 --- /dev/null +++ b/v3/example-code/aliasing/aliasing3.txt @@ -0,0 +1,7 @@ +l1, l2, l3, l4 = 1, 2, 3, 4 + +t1 = (l1, l2) +t2 = (l3, l4) +t = (t1, t2) +u = ((1, 2), (3, 4)) +v = u[0] diff --git a/v3/example-code/aliasing/aliasing4.golden b/v3/example-code/aliasing/aliasing4.golden new file mode 100644 index 000000000..0d440f81a --- /dev/null +++ b/v3/example-code/aliasing/aliasing4.golden @@ -0,0 +1,67 @@ +{ + "code": "x = [1, 2, 3]\nx.append(x)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing4.golden_py3 b/v3/example-code/aliasing/aliasing4.golden_py3 new file mode 100644 index 000000000..0d440f81a --- /dev/null +++ b/v3/example-code/aliasing/aliasing4.golden_py3 @@ -0,0 +1,67 @@ +{ + "code": "x = [1, 2, 3]\nx.append(x)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing4.txt b/v3/example-code/aliasing/aliasing4.txt new file mode 100644 index 000000000..7ca952d22 --- /dev/null +++ b/v3/example-code/aliasing/aliasing4.txt @@ -0,0 +1,2 @@ +x = [1, 2, 3] +x.append(x) diff --git a/v3/example-code/aliasing/aliasing5.golden b/v3/example-code/aliasing/aliasing5.golden new file mode 100644 index 000000000..af82d0118 --- /dev/null +++ b/v3/example-code/aliasing/aliasing5.golden @@ -0,0 +1,455 @@ +{ + "code": "x = None\nfor i in range(5, 0, -1):\n x = (i, x)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + 1, + [ + "REF", + 4 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + 1, + [ + "REF", + 4 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing5.golden_py3 b/v3/example-code/aliasing/aliasing5.golden_py3 new file mode 100644 index 000000000..af82d0118 --- /dev/null +++ b/v3/example-code/aliasing/aliasing5.golden_py3 @@ -0,0 +1,455 @@ +{ + "code": "x = None\nfor i in range(5, 0, -1):\n x = (i, x)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + 1, + [ + "REF", + 4 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 5, + null + ], + "2": [ + "TUPLE", + 4, + [ + "REF", + 1 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "4": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + 1, + [ + "REF", + 4 + ] + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing5.txt b/v3/example-code/aliasing/aliasing5.txt new file mode 100644 index 000000000..232486f7c --- /dev/null +++ b/v3/example-code/aliasing/aliasing5.txt @@ -0,0 +1,3 @@ +x = None +for i in range(5, 0, -1): + x = (i, x) diff --git a/v3/example-code/aliasing/aliasing6.golden b/v3/example-code/aliasing/aliasing6.golden new file mode 100644 index 000000000..71b2ac9b6 --- /dev/null +++ b/v3/example-code/aliasing/aliasing6.golden @@ -0,0 +1,327 @@ +{ + "code": "# wow, this looks gross :)\nt1 = (1, 2)\nt2 = (3, 4)\nt = [t1, t2]\nu = [t, t, t]\nu[1] = u\nt[0] = u\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 3 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 4 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing6.golden_py3 b/v3/example-code/aliasing/aliasing6.golden_py3 new file mode 100644 index 000000000..71b2ac9b6 --- /dev/null +++ b/v3/example-code/aliasing/aliasing6.golden_py3 @@ -0,0 +1,327 @@ +{ + "code": "# wow, this looks gross :)\nt1 = (1, 2)\nt2 = (3, 4)\nt = [t1, t2]\nu = [t, t, t]\nu[1] = u\nt[0] = u\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 3 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "t1", + "t2", + "t", + "u" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "t2": [ + "REF", + 2 + ], + "u": [ + "REF", + 4 + ], + "t": [ + "REF", + 3 + ], + "t1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2 + ], + "2": [ + "TUPLE", + 3, + 4 + ], + "3": [ + "LIST", + [ + "REF", + 4 + ], + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing6.txt b/v3/example-code/aliasing/aliasing6.txt new file mode 100644 index 000000000..5f9c1e8b5 --- /dev/null +++ b/v3/example-code/aliasing/aliasing6.txt @@ -0,0 +1,7 @@ +# wow, this looks gross :) +t1 = (1, 2) +t2 = (3, 4) +t = [t1, t2] +u = [t, t, t] +u[1] = u +t[0] = u diff --git a/v3/example-code/aliasing/aliasing7.golden b/v3/example-code/aliasing/aliasing7.golden new file mode 100644 index 000000000..fc49379b4 --- /dev/null +++ b/v3/example-code/aliasing/aliasing7.golden @@ -0,0 +1,248 @@ +{ + "code": "x = (3, {'joe': 'M', 'jane': 'F'})\ny = (2, x)\nz = (1, y)\nw = (x, y, z)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ], + "4": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "w" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 4 + ], + "w": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ], + "4": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing7.golden_py3 b/v3/example-code/aliasing/aliasing7.golden_py3 new file mode 100644 index 000000000..fc49379b4 --- /dev/null +++ b/v3/example-code/aliasing/aliasing7.golden_py3 @@ -0,0 +1,248 @@ +{ + "code": "x = (3, {'joe': 'M', 'jane': 'F'})\ny = (2, x)\nz = (1, y)\nw = (x, y, z)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ], + "4": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "w" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 4 + ], + "w": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "TUPLE", + 3, + [ + "REF", + 2 + ] + ], + "2": [ + "DICT", + [ + "jane", + "F" + ], + [ + "joe", + "M" + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 1 + ] + ], + "4": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "5": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing7.txt b/v3/example-code/aliasing/aliasing7.txt new file mode 100644 index 000000000..6e709dafc --- /dev/null +++ b/v3/example-code/aliasing/aliasing7.txt @@ -0,0 +1,5 @@ +x = (3, {'joe': 'M', 'jane': 'F'}) +y = (2, x) +z = (1, y) +w = (x, y, z) + diff --git a/v3/example-code/aliasing/aliasing8.golden b/v3/example-code/aliasing/aliasing8.golden new file mode 100644 index 000000000..20ddeb5fb --- /dev/null +++ b/v3/example-code/aliasing/aliasing8.golden @@ -0,0 +1,229 @@ +{ + "code": "# test whether heap objects \"jiggle\" between steps\nx = [1, [2, [3, None]]]\ny = [4, [5, [6, None]]]\n\nx[1][1] = y[1] # hopefully no jiggle!\n\nx = set(['apple', 'banana', 'carrot'])\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "LIST", + 3, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "LIST", + 3, + null + ], + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 5 + ] + ], + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 7 + ] + }, + "heap": { + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ], + "7": [ + "SET", + "carrot", + "apple", + "banana" + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing8.golden_py3 b/v3/example-code/aliasing/aliasing8.golden_py3 new file mode 100644 index 000000000..20ddeb5fb --- /dev/null +++ b/v3/example-code/aliasing/aliasing8.golden_py3 @@ -0,0 +1,229 @@ +{ + "code": "# test whether heap objects \"jiggle\" between steps\nx = [1, [2, [3, None]]]\ny = [4, [5, [6, None]]]\n\nx[1][1] = y[1] # hopefully no jiggle!\n\nx = set(['apple', 'banana', 'carrot'])\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "LIST", + 3, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "LIST", + 3, + null + ], + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 2, + [ + "REF", + 5 + ] + ], + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 4 + ], + "x": [ + "REF", + 7 + ] + }, + "heap": { + "4": [ + "LIST", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "LIST", + 5, + [ + "REF", + 6 + ] + ], + "6": [ + "LIST", + 6, + null + ], + "7": [ + "SET", + "carrot", + "apple", + "banana" + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/aliasing/aliasing8.txt b/v3/example-code/aliasing/aliasing8.txt new file mode 100644 index 000000000..707d5196f --- /dev/null +++ b/v3/example-code/aliasing/aliasing8.txt @@ -0,0 +1,8 @@ +# test whether heap objects "jiggle" between steps +x = [1, [2, [3, None]]] +y = [4, [5, [6, None]]] + +x[1][1] = y[1] # hopefully no jiggle! + +x = set(['apple', 'banana', 'carrot']) + diff --git a/v3/example-code/chris-meyers/optFib.golden b/v3/example-code/chris-meyers/optFib.golden new file mode 100644 index 000000000..f3ea1e124 --- /dev/null +++ b/v3/example-code/chris-meyers/optFib.golden @@ -0,0 +1,51160 @@ +{ + "code": "# o p t F i b . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Animated Fibonacci Sequence\"\nBOLD = \"color:red;font-weight:bold;\"\n\nfibs = Matrix(1,20)\nfibs.tableAttr = 'cellspacing=\"0\" cellpadding=\"10\"'\nfibs[0,0] = 1\nfibs[0,1] = 1\n\nfor i in range(2,100) :\n fibs.style[0,i-1] = BOLD\n fibs.style[0,i-2] = BOLD\n fibs[0,i] = fibs[0,i-1]+fibs[0,i-2]\n fibs.title = \"Last 2 elements add for new one\"\n htmlPage.item1 = fibs.renderHtml(wrap=10)\n htmlPage.makeFrame() #break\n fibs.style[0,i-2] = \"\" # uncolor behind\n\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 2, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 2, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 3, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 3, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 4, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 4, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 5, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 5, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 6, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 6, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 7, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123581321
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123581321
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 7, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123581321
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123581321
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 8, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358132134
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358132134
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 8, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358132134
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358132134
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 9, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 9, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 10, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 10, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 11, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 11, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 12, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 12, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 13, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 13, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 14, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 14, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 15, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 15, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 16, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 16, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 17, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 17, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 18, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 18, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 19, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 19, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 20, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x21" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 20, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x21" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 21, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x22" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 21, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x22" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 22, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x23" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 22, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x23" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 23, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x24" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 23, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x24" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 24, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x25" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 24, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x25" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 25, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x26" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 25, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x26" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 26, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x27" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 26, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x27" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 27, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x28" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 27, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x28" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 28, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x29" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 28, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x29" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 29, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x30" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 29, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x30" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 30, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x31" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 30, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x31" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 31, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x32" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 31, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x32" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 32, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x33" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 32, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x33" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 33, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x34" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 33, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x34" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 34, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x35" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 34, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x35" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 35, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x36" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 35, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x36" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 36, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x37" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 36, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x37" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 37, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x38" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 37, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x38" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 38, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x39" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 38, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x39" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 39, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x40" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 39, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x40" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 40, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x41" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 40, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x41" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 41, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x42" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 41, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x42" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 42, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x43" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 42, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x43" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 43, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x44" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 43, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x44" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 44, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x45" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 44, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x45" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 45, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x46" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 45, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x46" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 46, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x47" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 46, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x47" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 47, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x48" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 47, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x48" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 48, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x49" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 48, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x49" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 49, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x50" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 49, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x50" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 50, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x51" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 50, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x51" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 51, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x52" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 51, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x52" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 52, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x53" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 52, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x53" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 53, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x54" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 53, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x54" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 54, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x55" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 54, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x55" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 55, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x56" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 55, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x56" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 56, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x57" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 56, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x57" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 57, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x58" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 57, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x58" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 58, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x59" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 58, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x59" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 59, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x60" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 59, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x60" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 60, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x61" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 60, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x61" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 61, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x62" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 61, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x62" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 62, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x63" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 62, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x63" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 63, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x64" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 63, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x64" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 64, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x65" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 64, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x65" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 65, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x66" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 65, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x66" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 66, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x67" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 66, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x67" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 67, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x68" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 67, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x68" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 68, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x69" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 68, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x69" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 69, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x70" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 69, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x70" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 70, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x71" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 70, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x71" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 71, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x72" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 71, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x72" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 72, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x73" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 72, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x73" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 73, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x74" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 73, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x74" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 74, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x75" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 74, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x75" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 75, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x76" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 75, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x76" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 76, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x77" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 76, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x77" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 77, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x78" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 77, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x78" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 78, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x79" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 78, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x79" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 79, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x80" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 79, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x80" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 80, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x81" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 80, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x81" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 81, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x82" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 81, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x82" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 82, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x83" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 82, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x83" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 83, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x84" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 83, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x84" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 84, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x85" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 84, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x85" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 85, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x86" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 85, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x86" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 86, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x87" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 86, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x87" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 87, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x88" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 87, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x88" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 88, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x89" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 88, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x89" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 89, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x90" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 89, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x90" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 90, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x91" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 90, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x91" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 91, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x92" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 91, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x92" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 92, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x93" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 92, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x93" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 93, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x94" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 93, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x94" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 94, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x95" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 94, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x95" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 95, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x96" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 95, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x96" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 96, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x97" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 96, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x97" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 97, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x98" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 97, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x98" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 98, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x99" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 98, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x99" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 99, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x100" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 99, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x100" + ] + }, + "line": 24, + "event": "step_line" + } + ] +} diff --git a/v3/example-code/chris-meyers/optFib.golden_py3 b/v3/example-code/chris-meyers/optFib.golden_py3 new file mode 100644 index 000000000..f3ea1e124 --- /dev/null +++ b/v3/example-code/chris-meyers/optFib.golden_py3 @@ -0,0 +1,51160 @@ +{ + "code": "# o p t F i b . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Animated Fibonacci Sequence\"\nBOLD = \"color:red;font-weight:bold;\"\n\nfibs = Matrix(1,20)\nfibs.tableAttr = 'cellspacing=\"0\" cellpadding=\"10\"'\nfibs[0,0] = 1\nfibs[0,1] = 1\n\nfor i in range(2,100) :\n fibs.style[0,i-1] = BOLD\n fibs.style[0,i-2] = BOLD\n fibs[0,i] = fibs[0,i-1]+fibs[0,i-2]\n fibs.title = \"Last 2 elements add for new one\"\n htmlPage.item1 = fibs.renderHtml(wrap=10)\n htmlPage.makeFrame() #break\n fibs.style[0,i-2] = \"\" # uncolor behind\n\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 2, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 2, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 3, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 3, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 4, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 4, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 5, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 5, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 6, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 6, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 7, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123581321
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123581321
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 7, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      1123581321
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      1123581321
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 8, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358132134
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358132134
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 8, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      112358132134
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      112358132134
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 9, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 9, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 10, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 10, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 11, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 11, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 12, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 12, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 13, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 13, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 14, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 14, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 15, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 15, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 16, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 16, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 17, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 17, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      8914423337761098715972584
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 18, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 18, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      89144233377610987159725844181
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 19, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 19, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 20, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x21" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 20, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x21" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 21, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x22" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 21, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x22" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 22, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x23" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 22, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x23" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      109461771128657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 23, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x24" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 23, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x24" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      10946177112865746368
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 24, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x25" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 24, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x25" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 25, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x26" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 25, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x26" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 26, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x27" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 26, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x27" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 27, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x28" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 27, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x28" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 28, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x29" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 28, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x29" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 29, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x30" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 29, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x30" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 30, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x31" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 30, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x31" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 31, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x32" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 31, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x32" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 32, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x33" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 32, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x33" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 33, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x34" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 33, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x34" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 34, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x35" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 34, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x35" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 35, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x36" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 35, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x36" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 36, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x37" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 36, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x37" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      134626921783093524578570288792274651493035224157817
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 37, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x38" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 37, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x38" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      13462692178309352457857028879227465149303522415781739088169
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 38, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x39" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 38, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x39" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 39, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x40" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 39, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x40" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 40, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x41" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 40, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x41" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 41, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x42" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 41, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x42" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 42, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x43" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 42, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x43" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 43, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x44" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 43, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x44" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 44, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x45" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 44, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x45" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 45, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x46" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 45, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x46" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 46, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x47" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 46, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x47" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      165580141267914296433494437701408733113490317018363119032971215073
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 47, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x48" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 47, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x48" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 48, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x49" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 48, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x49" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      16558014126791429643349443770140873311349031701836311903297121507348075269767778742049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 49, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x50" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 49, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x50" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 50, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x51" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 50, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x51" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 51, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x52" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 51, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x52" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      2036501107432951280099
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 52, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x53" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 52, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x53" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 53, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x54" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 53, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x54" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 54, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x55" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 54, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x55" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 55, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x56" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 55, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x56" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 56, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x57" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 56, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x57" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 57, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x58" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 57, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x58" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 58, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x59" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 58, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x59" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      20365011074329512800995331629117386267571272139583862445225851433717365435296162591286729879956722026041
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 59, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x60" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 59, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x60" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 60, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x61" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 60, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x61" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 61, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x62" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 61, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x62" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 62, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x63" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 62, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x63" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 63, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x64" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 63, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x64" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 64, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x65" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 64, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x65" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 65, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x66" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 65, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x66" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      250473078196140527395378816557470319842106102098577231716768017756527777890035288
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 66, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x67" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 66, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x67" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      25047307819614052739537881655747031984210610209857723171676801775652777789003528844945570212853
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 67, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x68" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 67, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x68" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 68, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x69" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 68, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x69" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 69, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x70" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 69, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x70" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 70, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x71" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 70, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x71" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 71, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x72" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 71, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x72" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 72, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x73" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 72, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x73" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 73, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x74" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 73, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x74" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 74, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x75" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 74, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x75" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 75, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x76" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 75, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x76" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 76, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x77" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 76, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x77" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 77, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x78" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 77, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x78" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      30806152117012949845401187926480651553304939313049695449286572111485077978050341645462290670755279397008847578944394323791464
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 78, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x79" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 78, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x79" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      3080615211701294984540118792648065155330493931304969544928657211148507797805034164546229067075527939700884757894439432379146414472334024676221
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 79, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x80" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 79, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x80" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 80, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x81" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 80, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x81" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 81, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x82" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 81, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x82" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 82, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x83" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 82, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x83" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 83, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x84" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 83, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x84" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 84, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x85" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 84, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x85" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 85, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x86" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 85, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x86" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 86, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x87" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 86, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x87" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 87, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x88" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 87, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x88" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      3788906237314390661305790721611591991948530947554971605006438163670882596954969111225854201961407274896736798916376386122581100087778366101931
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 88, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x89" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 88, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x89" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      37889062373143906613057907216115919919485309475549716050064381636708825969549691112258542019614072748967367989163763861225811000877783661019311779979416004714189
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 89, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x90" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 89, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x90" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 90, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x91" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 90, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x91" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 91, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x92" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 91, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x92" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 92, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x93" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 92, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x93" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 93, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x94" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 93, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x94" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 94, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x95" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 94, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x95" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      46600466103755303097540113804746346429122001604151218767381974027421986822316731940434634990099905
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 95, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x96" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 95, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x96" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      4660046610375530309754011380474634642912200160415121876738197402742198682231673194043463499009990551680708854858323072
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 96, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x97" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 96, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x97" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 97, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x98" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 97, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x98" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 98, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x99" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 98, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x99" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 99, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x100" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "fibs", + "i" + ], + "html_output": "\n\n

      Animated Fibonacci Sequence

      \n
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "i": 99, + "fibs": [ + "REF", + 19 + ], + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Fibonacci Sequence" + ], + [ + "item1", + "
      Last 2 elements add for new one
      \n\n \n
      11235813213455
      891442333776109871597258441816765
      1094617711286574636875025121393196418317811514229832040
      1346269217830935245785702887922746514930352241578173908816963245986102334155
      1655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025
      203650110743295128009953316291173862675712721395838624452258514337173654352961625912867298799567220260411548008755920
      2504730781961405273953788165574703198421061020985772317167680177565277778900352884494557021285372723460248141117669030460994190392490709135
      308061521170129498454011879264806515533049393130496954492865721114850779780503416454622906707552793970088475789443943237914641447233402467622123416728348467685
      378890623731439066130579072161159199194853094755497160500643816367088259695496911122585420196140727489673679891637638612258110008777836610193117799794160047141892880067194370816120
      466004661037553030975401138047463464291220016041512187673819740274219868223167319404346349900999055168070885485832307283621143489848422977135301852344706746049218922995834555169026354224848179261915075
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x100" + ] + }, + "line": 24, + "event": "step_line" + } + ] +} diff --git a/v3/example-code/chris-meyers/optFib.txt b/v3/example-code/chris-meyers/optFib.txt new file mode 100644 index 000000000..f2d830a31 --- /dev/null +++ b/v3/example-code/chris-meyers/optFib.txt @@ -0,0 +1,25 @@ +# o p t F i b . p y +# +# Chris Meyers. 09/25/2013 +# +from htmlFrame import HtmlFrame +from matrix import Matrix + +htmlPage = HtmlFrame() +htmlPage.banner = "Animated Fibonacci Sequence" +BOLD = "color:red;font-weight:bold;" + +fibs = Matrix(1,20) +fibs.tableAttr = 'cellspacing="0" cellpadding="10"' +fibs[0,0] = 1 +fibs[0,1] = 1 + +for i in range(2,100) : + fibs.style[0,i-1] = BOLD + fibs.style[0,i-2] = BOLD + fibs[0,i] = fibs[0,i-1]+fibs[0,i-2] + fibs.title = "Last 2 elements add for new one" + htmlPage.item1 = fibs.renderHtml(wrap=10) + htmlPage.makeFrame() #break + fibs.style[0,i-2] = "" # uncolor behind + diff --git a/v3/example-code/chris-meyers/optKnapsack.golden b/v3/example-code/chris-meyers/optKnapsack.golden new file mode 100644 index 000000000..9fbdac5d5 --- /dev/null +++ b/v3/example-code/chris-meyers/optKnapsack.golden @@ -0,0 +1,14700 @@ +{ + "code": "# o p t K n a p s a c k . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nmaxwgt = 10\nvals = [0,10,40,30,50]\nwgts = [0, 5, 4, 6, 3]\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Knapsack Problem\"\nheaders=['wt'+str(i) for i in range(maxwgt+1)]\n\ninp = Matrix(len(vals),3)\ninp.title = \"Sack holds weight %s\" % maxwgt\ninp.dftFormat = \"
      %03s
      \"\ninp.tableAttr = 'border=\"1\" cellspacing=\"0\" cellpadding=\"4\"',\ninp.tableHeaders=['Item #','Weight','Value'] \nfor i in range(len(vals)) :\n inp.setrowVals(i, [i, wgts[i], vals[i]])\n\nframe = Matrix(1,2)\nframe[0,0] = inp.renderHtml()\nnItems = len(vals)\nbest = Matrix(nItems,maxwgt+1)\nbest.dftFormat = \"
      %03s
      \"\n\nfor i in range(1,nItems) :\n best.setrowVal(i,0)\nfor i in range(1,nItems) :\n for w in range(0,maxwgt+1) :\n remBest = best[i-1,w-wgts[i]]\n if remBest == None : remBest = 0\n newSolution = vals[i]+remBest\n if ((wgts[i] <= w and newSolution > best[i-1,w])) :\n best[i,w] = newSolution\n best.style[i,w] = \"background-color:pink\"\n best.title = \"Optimal solution for weight %s includes item %s\" % (w,i)\n best.tableAttr='border=\"1\" cellspacing=\"0\" cellpadding=\"4\"'\n best.tableHeaders=headers\n frame[0,1] = best.renderHtml()\n htmlPage.item1 = frame.renderHtml()\n htmlPage.makeFrame() #break\n else :\n best[i,w] = best[i-1,w]\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 1
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 4, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 4, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 40, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 10, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 10, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 10, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 2, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 10, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 2
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 3, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 70, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 3
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 3
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 3, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 70, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 3
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 3
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 3, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 3 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 3 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 3, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 3 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
        0
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 3 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
        0
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 4, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 4, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
        0
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 4 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
        0
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
        0
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 5 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
        0
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 6, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 50, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
        0
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 6 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
        0
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 7, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
        0
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 7 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
        0
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 8, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
        0
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 8 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
        0
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 9, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
        0
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 9 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
        0
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
       90
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 45, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "i", + "headers", + "inp", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "html_output": "\n\n

      Knapsack Problem

      \n
      \n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
       90
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 4, + "frame": [ + "REF", + 23 + ], + "inp": [ + "REF", + 22 + ], + "headers": [ + "REF", + 21 + ], + "w": 10, + "vals": [ + "REF", + 18 + ], + "remBest": 40, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 90, + "best": [ + "REF", + 24 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "\n\n \n
      Sack holds weight 10
      \n\n\n \n \n \n \n \n
      Item #WeightValue
        0
        0
        0
        1
        5
       10
        2
        4
       40
        3
        6
       30
        4
        3
       50
      Optimal solution for weight 10 includes item 4
      \n\n\n \n \n \n \n \n
      wt0wt1wt2wt3wt4wt5wt6wt7wt8wt9wt10
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
       10
       10
       10
       10
       10
       10
         
         
         
         
       40
       40
       40
       40
       40
       50
       50
         
         
         
         
       40
       40
       40
       40
       40
       50
       70
         
         
         
       50
       50
       50
       50
       90
       90
       90
       90
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "22": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 33, + "event": "step_line" + } + ] +} diff --git a/v3/example-code/chris-meyers/optKnapsack.golden_py3 b/v3/example-code/chris-meyers/optKnapsack.golden_py3 new file mode 100644 index 000000000..2737c2218 --- /dev/null +++ b/v3/example-code/chris-meyers/optKnapsack.golden_py3 @@ -0,0 +1,339 @@ +{ + "code": "# o p t K n a p s a c k . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nmaxwgt = 10\nvals = [0,10,40,30,50]\nwgts = [0, 5, 4, 6, 3]\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Knapsack Problem\"\nheaders=['wt'+str(i) for i in range(maxwgt+1)]\n\ninp = Matrix(len(vals),3)\ninp.title = \"Sack holds weight %s\" % maxwgt\ninp.dftFormat = \"
      %03s
      \"\ninp.tableAttr = 'border=\"1\" cellspacing=\"0\" cellpadding=\"4\"',\ninp.tableHeaders=['Item #','Weight','Value'] \nfor i in range(len(vals)) :\n inp.setrowVals(i, [i, wgts[i], vals[i]])\n\nframe = Matrix(1,2)\nframe[0,0] = inp.renderHtml()\nnItems = len(vals)\nbest = Matrix(nItems,maxwgt+1)\nbest.dftFormat = \"
      %03s
      \"\n\nfor i in range(1,nItems) :\n best.setrowVal(i,0)\nfor i in range(1,nItems) :\n for w in range(0,maxwgt+1) :\n remBest = best[i-1,w-wgts[i]]\n if remBest == None : remBest = 0\n newSolution = vals[i]+remBest\n if ((wgts[i] <= w and newSolution > best[i-1,w])) :\n best[i,w] = newSolution\n best.style[i,w] = \"background-color:pink\"\n best.title = \"Optimal solution for weight %s includes item %s\" % (w,i)\n best.tableAttr='border=\"1\" cellspacing=\"0\" cellpadding=\"4\"'\n best.tableHeaders=headers\n frame[0,1] = best.renderHtml()\n htmlPage.item1 = frame.renderHtml()\n htmlPage.makeFrame() #break\n else :\n best[i,w] = best[i-1,w]\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "maxwgt", + "vals", + "wgts", + "htmlPage", + "headers", + "inp", + "i", + "frame", + "nItems", + "best", + "w", + "remBest", + "newSolution" + ], + "stdout": "", + "exception_msg": "TypeError: unorderable types: int() > NoneType()", + "func_name": "", + "stack_to_render": [], + "globals": { + "wgts": [ + "REF", + 19 + ], + "nItems": 5, + "Matrix": [ + "REF", + 5 + ], + "maxwgt": 10, + "i": 1, + "frame": [ + "REF", + 24 + ], + "inp": [ + "REF", + 23 + ], + "headers": [ + "REF", + 22 + ], + "w": 5, + "vals": [ + "REF", + 18 + ], + "remBest": 0, + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "newSolution": 10, + "best": [ + "REF", + 25 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "LIST", + 0, + 10, + 40, + 30, + 50 + ], + "19": [ + "LIST", + 0, + 5, + 4, + 6, + 3 + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Knapsack Problem" + ], + [ + "item1", + "" + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "22": [ + "LIST", + "wt0", + "wt1", + "wt2", + "wt3", + "wt4", + "wt5", + "wt6", + "wt7", + "wt8", + "wt9", + "wt10" + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x3" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-5x11" + ] + }, + "line": 37, + "event": "exception" + } + ] +} diff --git a/v3/example-code/chris-meyers/optKnapsack.txt b/v3/example-code/chris-meyers/optKnapsack.txt new file mode 100644 index 000000000..e72b401ca --- /dev/null +++ b/v3/example-code/chris-meyers/optKnapsack.txt @@ -0,0 +1,47 @@ +# o p t K n a p s a c k . p y +# +# Chris Meyers. 09/25/2013 +# +from htmlFrame import HtmlFrame +from matrix import Matrix + +maxwgt = 10 +vals = [0,10,40,30,50] +wgts = [0, 5, 4, 6, 3] + +htmlPage = HtmlFrame() +htmlPage.banner = "Knapsack Problem" +headers=['wt'+str(i) for i in range(maxwgt+1)] + +inp = Matrix(len(vals),3) +inp.title = "Sack holds weight %s" % maxwgt +inp.dftFormat = "
      %03s
      " +inp.tableAttr = 'border="1" cellspacing="0" cellpadding="4"', +inp.tableHeaders=['Item #','Weight','Value'] +for i in range(len(vals)) : + inp.setrowVals(i, [i, wgts[i], vals[i]]) + +frame = Matrix(1,2) +frame[0,0] = inp.renderHtml() +nItems = len(vals) +best = Matrix(nItems,maxwgt+1) +best.dftFormat = "
      %03s
      " + +for i in range(1,nItems) : + best.setrowVal(i,0) +for i in range(1,nItems) : + for w in range(0,maxwgt+1) : + remBest = best[i-1,w-wgts[i]] + if remBest == None : remBest = 0 + newSolution = vals[i]+remBest + if ((wgts[i] <= w and newSolution > best[i-1,w])) : + best[i,w] = newSolution + best.style[i,w] = "background-color:pink" + best.title = "Optimal solution for weight %s includes item %s" % (w,i) + best.tableAttr='border="1" cellspacing="0" cellpadding="4"' + best.tableHeaders=headers + frame[0,1] = best.renderHtml() + htmlPage.item1 = frame.renderHtml() + htmlPage.makeFrame() #break + else : + best[i,w] = best[i-1,w] diff --git a/v3/example-code/chris-meyers/optMinpath.golden b/v3/example-code/chris-meyers/optMinpath.golden new file mode 100644 index 000000000..3d3b0e933 --- /dev/null +++ b/v3/example-code/chris-meyers/optMinpath.golden @@ -0,0 +1,5328 @@ +{ + "code": "# o p t M i n p a t h . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nfrom random import randint\nimport random\nrandom.seed(0) # for determinism\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Minimum Path from top to bottom\"\n\ndef renderTriangle(t) :\n t.dftFormat = \"
      %03s
      \"\n t.tableAttr='border=\"0\" cellspacing=\"0\" cellpadding=\"4\"'\n return t.renderHtml()\n\ndef minpath(nrows) :\n mat = Matrix(1,2)\n tri = Matrix(nrows,nrows)\n org = Matrix(nrows,nrows)\n for r in range(nrows) :\n vals = [randint(1,9) for c in range(r+1)]\n tri.setrowVals(r,vals)\n org.setrowVals(r,vals)\n\n org.title = \"Original Values\"\n mat[0,0] = renderTriangle(org)\n mat.tableAttr='border=\"1\" cellspacing=\"0\" cellpadding=\"4\"'\n\n tri.style.setrowVal(nrows-1,\"background-color:lightgreen\")\n for row in range(nrows-2,-1,-1) :\n for col in range(row+1) :\n left = tri[row+1,col]\n right= tri[row+1,col+1]\n this = tri[row,col]\n tri.style[row,col] = \"background-color:pink\"\n tri.title = \"Set to min(%s+%s, %s+%s)\" % (this,left,this,right)\n mat[0,1] = renderTriangle(tri)\n htmlPage.item1 = mat.renderHtml()\n htmlPage.makeFrame() #break\n tri[row,col] = best = min(this+left,this+right)\n tri.style[row,col] = \"background-color:lightgreen\"\n mat[0,1] = renderTriangle(tri)\n htmlPage.item1 = mat.renderHtml()\n htmlPage.banner = \"Miniumum cost is %s\" % best\n htmlPage.makeFrame() #break\n\nminpath(4)\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 3, + "mat": [ + "REF", + 23 + ], + "this": 3, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 0, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(3+8, 3+3)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(3+8, 3+3)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 3, + "mat": [ + "REF", + 23 + ], + "this": 3, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 0, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(3+8, 3+3)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(3+8, 3+3)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 5, + "mat": [ + "REF", + 23 + ], + "this": 5, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 3, + "col": 1, + "best": 6, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(5+3, 5+5)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        5
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(5+3, 5+5)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        5
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 5, + "mat": [ + "REF", + 23 + ], + "this": 5, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 3, + "col": 1, + "best": 6, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(5+3, 5+5)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        5
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(5+3, 5+5)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        5
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 6, + "mat": [ + "REF", + 23 + ], + "this": 4, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 5, + "col": 2, + "best": 8, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+5, 4+6)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+5, 4+6)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 6, + "mat": [ + "REF", + 23 + ], + "this": 4, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 5, + "col": 2, + "best": 8, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+5, 4+6)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        4
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+5, 4+6)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        4
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 8, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 6, + "col": 0, + "best": 9, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(7+6, 7+8)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(7+6, 7+8)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 8, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 6, + "col": 0, + "best": 9, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(7+6, 7+8)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(7+6, 7+8)
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 9, + "mat": [ + "REF", + 23 + ], + "this": 4, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 1, + "best": 13, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+8, 4+9)
      \n\n \n \n \n \n
        8
         
         
         
       13
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+8, 4+9)
      \n\n \n \n \n \n
        8
         
         
         
       13
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 9, + "mat": [ + "REF", + 23 + ], + "this": 4, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 1, + "best": 13, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+8, 4+9)
      \n\n \n \n \n \n
        8
         
         
         
       13
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(4+8, 4+9)
      \n\n \n \n \n \n
        8
         
         
         
       13
        4
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 12, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 13, + "col": 0, + "best": 12, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
        8
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
        8
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 12, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 13, + "col": 0, + "best": 12, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
        8
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
        8
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 12, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 13, + "col": 0, + "best": 20, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 20" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
       20
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 49, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Miniumum cost is 20

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
       20
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "c": 3, + "right": 12, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "__return__": null, + "r": 3, + "vals": [ + "REF", + 29 + ], + "org": [ + "REF", + 25 + ], + "left": 13, + "col": 0, + "best": 20, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "c", + "vals", + "row", + "col", + "left", + "right", + "this", + "best", + "__return__" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 20" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
       20
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "29": [ + "LIST", + 8, + 3, + 5, + 6 + ] + }, + "line": 49, + "event": "return" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Miniumum cost is 20

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
       20
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "module", + "random" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 20" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        8
         
         
         
        7
        4
         
         
        3
        5
        4
         
        8
        3
        5
        6
      Set to min(8+13, 8+12)
      \n\n \n \n \n \n
       20
         
         
         
       13
       12
         
         
        6
        8
        9
         
        8
        3
        5
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ] + }, + "line": 51, + "event": "return" + } + ] +} diff --git a/v3/example-code/chris-meyers/optMinpath.golden_py3 b/v3/example-code/chris-meyers/optMinpath.golden_py3 new file mode 100644 index 000000000..58e6cf14b --- /dev/null +++ b/v3/example-code/chris-meyers/optMinpath.golden_py3 @@ -0,0 +1,5300 @@ +{ + "code": "# o p t M i n p a t h . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nfrom random import randint\nimport random\nrandom.seed(0) # for determinism\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Minimum Path from top to bottom\"\n\ndef renderTriangle(t) :\n t.dftFormat = \"
      %03s
      \"\n t.tableAttr='border=\"0\" cellspacing=\"0\" cellpadding=\"4\"'\n return t.renderHtml()\n\ndef minpath(nrows) :\n mat = Matrix(1,2)\n tri = Matrix(nrows,nrows)\n org = Matrix(nrows,nrows)\n for r in range(nrows) :\n vals = [randint(1,9) for c in range(r+1)]\n tri.setrowVals(r,vals)\n org.setrowVals(r,vals)\n\n org.title = \"Original Values\"\n mat[0,0] = renderTriangle(org)\n mat.tableAttr='border=\"1\" cellspacing=\"0\" cellpadding=\"4\"'\n\n tri.style.setrowVal(nrows-1,\"background-color:lightgreen\")\n for row in range(nrows-2,-1,-1) :\n for col in range(row+1) :\n left = tri[row+1,col]\n right= tri[row+1,col+1]\n this = tri[row,col]\n tri.style[row,col] = \"background-color:pink\"\n tri.title = \"Set to min(%s+%s, %s+%s)\" % (this,left,this,right)\n mat[0,1] = renderTriangle(tri)\n htmlPage.item1 = mat.renderHtml()\n htmlPage.makeFrame() #break\n tri[row,col] = best = min(this+left,this+right)\n tri.style[row,col] = \"background-color:lightgreen\"\n mat[0,1] = renderTriangle(tri)\n htmlPage.item1 = mat.renderHtml()\n htmlPage.banner = \"Miniumum cost is %s\" % best\n htmlPage.makeFrame() #break\n\nminpath(4)\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 5, + "mat": [ + "REF", + 23 + ], + "this": 5, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 7, + "col": 0, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(5+7, 5+5)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(5+7, 5+5)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 5, + "mat": [ + "REF", + 23 + ], + "this": 5, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 7, + "col": 0, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(5+7, 5+5)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(5+7, 5+5)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 8, + "mat": [ + "REF", + 23 + ], + "this": 9, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 5, + "col": 1, + "best": 10, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(9+5, 9+8)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
        9
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(9+5, 9+8)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
        9
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 8, + "mat": [ + "REF", + 23 + ], + "this": 9, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 5, + "col": 1, + "best": 10, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(9+5, 9+8)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
        9
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(9+5, 9+8)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
        9
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 6, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 2, + "best": 14, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(8+8, 8+6)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(8+8, 8+6)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 6, + "mat": [ + "REF", + 23 + ], + "this": 8, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 8, + "col": 2, + "best": 14, + "row": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(8+8, 8+6)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
        8
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(8+8, 8+6)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
        8
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 14, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 10, + "col": 0, + "best": 14, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+10, 7+14)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+10, 7+14)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 14, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 10, + "col": 0, + "best": 14, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+10, 7+14)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+10, 7+14)
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 14, + "mat": [ + "REF", + 23 + ], + "this": 1, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 14, + "col": 1, + "best": 17, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(1+14, 1+14)
      \n\n \n \n \n \n
        7
         
         
         
       17
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(1+14, 1+14)
      \n\n \n \n \n \n
        7
         
         
         
       17
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 14, + "mat": [ + "REF", + 23 + ], + "this": 1, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 14, + "col": 1, + "best": 17, + "row": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(1+14, 1+14)
      \n\n \n \n \n \n
        7
         
         
         
       17
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(1+14, 1+14)
      \n\n \n \n \n \n
        7
         
         
         
       17
        1
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 15, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 17, + "col": 0, + "best": 15, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
        7
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
        7
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 15, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 17, + "col": 0, + "best": 15, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Minimum Path from top to bottom" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
        7
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 44, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Minimum Path from top to bottom

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
        7
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 15, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 17, + "col": 0, + "best": 22, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 22" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
       22
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 49, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Miniumum cost is 22

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
       22
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "minpath", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tri": [ + "REF", + 24 + ], + "right": 15, + "mat": [ + "REF", + 23 + ], + "this": 7, + "nrows": 4, + "__return__": null, + "r": 3, + "vals": [ + "REF", + 33 + ], + "org": [ + "REF", + 25 + ], + "left": 17, + "col": 0, + "best": 22, + "row": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "minpath", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "minpath_f1", + "ordered_varnames": [ + "nrows", + "mat", + "tri", + "org", + "r", + "vals", + "row", + "col", + "left", + "right", + "this", + "best", + "__return__" + ] + } + ], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 22" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
       22
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ], + "23": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x2" + ], + "24": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "25": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-4x4" + ], + "33": [ + "LIST", + 7, + 5, + 8, + 6 + ] + }, + "line": 49, + "event": "return" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "randint", + "random", + "htmlPage", + "renderTriangle", + "minpath" + ], + "html_output": "\n\n

      Miniumum cost is 22

      \n
      \n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
       22
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "renderTriangle": [ + "REF", + 21 + ], + "Matrix": [ + "REF", + 5 + ], + "randint": [ + "REF", + 18 + ], + "random": [ + "REF", + 19 + ], + "minpath": [ + "REF", + 22 + ], + "htmlPage": [ + "REF", + 20 + ], + "HtmlFrame": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "FUNCTION", + "randint(self, a, b)", + null + ], + "19": [ + "INSTANCE", + "module" + ], + "20": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Miniumum cost is 22" + ], + [ + "item1", + "\n\n \n
      Original Values
      \n\n \n \n \n \n
        7
         
         
         
        7
        1
         
         
        5
        9
        8
         
        7
        5
        8
        6
      Set to min(7+17, 7+15)
      \n\n \n \n \n \n
       22
         
         
         
       17
       15
         
         
       10
       14
       14
         
        7
        5
        8
        6
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "21": [ + "FUNCTION", + "renderTriangle(t)", + null + ], + "22": [ + "FUNCTION", + "minpath(nrows)", + null + ] + }, + "line": 51, + "event": "return" + } + ] +} diff --git a/v3/example-code/chris-meyers/optMinpath.txt b/v3/example-code/chris-meyers/optMinpath.txt new file mode 100644 index 000000000..a995454a5 --- /dev/null +++ b/v3/example-code/chris-meyers/optMinpath.txt @@ -0,0 +1,51 @@ +# o p t M i n p a t h . p y +# +# Chris Meyers. 09/25/2013 +# +from htmlFrame import HtmlFrame +from matrix import Matrix + +from random import randint +import random +random.seed(0) # for determinism + +htmlPage = HtmlFrame() +htmlPage.banner = "Minimum Path from top to bottom" + +def renderTriangle(t) : + t.dftFormat = "
      %03s
      " + t.tableAttr='border="0" cellspacing="0" cellpadding="4"' + return t.renderHtml() + +def minpath(nrows) : + mat = Matrix(1,2) + tri = Matrix(nrows,nrows) + org = Matrix(nrows,nrows) + for r in range(nrows) : + vals = [randint(1,9) for c in range(r+1)] + tri.setrowVals(r,vals) + org.setrowVals(r,vals) + + org.title = "Original Values" + mat[0,0] = renderTriangle(org) + mat.tableAttr='border="1" cellspacing="0" cellpadding="4"' + + tri.style.setrowVal(nrows-1,"background-color:lightgreen") + for row in range(nrows-2,-1,-1) : + for col in range(row+1) : + left = tri[row+1,col] + right= tri[row+1,col+1] + this = tri[row,col] + tri.style[row,col] = "background-color:pink" + tri.title = "Set to min(%s+%s, %s+%s)" % (this,left,this,right) + mat[0,1] = renderTriangle(tri) + htmlPage.item1 = mat.renderHtml() + htmlPage.makeFrame() #break + tri[row,col] = best = min(this+left,this+right) + tri.style[row,col] = "background-color:lightgreen" + mat[0,1] = renderTriangle(tri) + htmlPage.item1 = mat.renderHtml() + htmlPage.banner = "Miniumum cost is %s" % best + htmlPage.makeFrame() #break + +minpath(4) diff --git a/v3/example-code/chris-meyers/optSieve.golden b/v3/example-code/chris-meyers/optSieve.golden new file mode 100644 index 000000000..d46278082 --- /dev/null +++ b/v3/example-code/chris-meyers/optSieve.golden @@ -0,0 +1,22058 @@ +{ + "code": "# o p t S i e v e . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Animated Sieve of Erastosthenes\"\nBOLD = \"color:red;font-weight:bold;\"\n\nprimes = Matrix(1,20)\nprimes.tableAttr = 'cellspacing=\"0\" cellpadding=\"10\"'\nprimes[0,0] = 2\nnprimes = 1\n\nfor x in range(3,21) :\n primeSofar = True\n for px in range(nprimes) :\n primes.title = \"Testing if %s is divisible by primes so far\" % x\n primes.style[0,px] = BOLD\n htmlPage.item1 = primes.renderHtml(wrap=5)\n htmlPage.makeFrame() #break\n primes.style[0,px] = \"\"\n div = primes[0,px]\n if x % div == 0 : primeSofar = False\n if not primeSofar : break\n\n if primeSofar :\n primes[0,nprimes] = x\n nprimes += 1\n primes.title = \"Found a new prime %s\" % x\n else :\n primes.title = \"Not Prime: %s mod %s is zero\" % (x,div)\n htmlPage.item1 = primes.renderHtml(wrap=5)\n htmlPage.makeFrame()\n\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 1, + "x": 3, + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "primes": [ + "REF", + 19 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 1, + "x": 3, + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "primes": [ + "REF", + 19 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 3
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 4, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 4, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 4 mod 2 is zero
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 5
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 6, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 6, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 6 mod 2 is zero
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 7
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 8, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 8, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 8 mod 2 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 9 mod 3 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 10, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 10, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 10 mod 2 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 11
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 12, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 12, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 12 mod 2 is zero
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 13
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 14, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 14, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 14 mod 2 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 15 mod 3 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 16, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 16, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 16 mod 2 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 17
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 18, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 18, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 18 mod 2 is zero
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 6, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 6, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 19
      \n\n \n
      235711
      131719
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 8, + "x": 20, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 17, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 8, + "x": 20, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 17, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + } + ] +} diff --git a/v3/example-code/chris-meyers/optSieve.golden_py3 b/v3/example-code/chris-meyers/optSieve.golden_py3 new file mode 100644 index 000000000..d46278082 --- /dev/null +++ b/v3/example-code/chris-meyers/optSieve.golden_py3 @@ -0,0 +1,22058 @@ +{ + "code": "# o p t S i e v e . p y\n#\n# Chris Meyers. 09/25/2013\n#\nfrom htmlFrame import HtmlFrame\nfrom matrix import Matrix\n\nhtmlPage = HtmlFrame()\nhtmlPage.banner = \"Animated Sieve of Erastosthenes\"\nBOLD = \"color:red;font-weight:bold;\"\n\nprimes = Matrix(1,20)\nprimes.tableAttr = 'cellspacing=\"0\" cellpadding=\"10\"'\nprimes[0,0] = 2\nnprimes = 1\n\nfor x in range(3,21) :\n primeSofar = True\n for px in range(nprimes) :\n primes.title = \"Testing if %s is divisible by primes so far\" % x\n primes.style[0,px] = BOLD\n htmlPage.item1 = primes.renderHtml(wrap=5)\n htmlPage.makeFrame() #break\n primes.style[0,px] = \"\"\n div = primes[0,px]\n if x % div == 0 : primeSofar = False\n if not primeSofar : break\n\n if primeSofar :\n primes[0,nprimes] = x\n nprimes += 1\n primes.title = \"Found a new prime %s\" % x\n else :\n primes.title = \"Not Prime: %s mod %s is zero\" % (x,div)\n htmlPage.item1 = primes.renderHtml(wrap=5)\n htmlPage.makeFrame()\n\n", + "trace": [ + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 1, + "x": 3, + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "primes": [ + "REF", + 19 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 1, + "x": 3, + "htmlPage": [ + "REF", + 18 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "primes": [ + "REF", + 19 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 3 is divisible by primes so far
      \n\n \n
      2
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 3
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 4, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 4, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 4 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 4 mod 2 is zero
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 2, + "x": 5, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 5 is divisible by primes so far
      \n\n \n
      23
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 5
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 6, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 6, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 6 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 6 mod 2 is zero
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 3, + "x": 7, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 7 is divisible by primes so far
      \n\n \n
      235
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 7
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 8, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 8, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 8 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 8 mod 2 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 9, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 9 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 9 mod 3 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 10, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 10, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 10 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 10 mod 2 is zero
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 4, + "x": 11, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 11 is divisible by primes so far
      \n\n \n
      2357
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 11
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 12, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 12, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 12 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 12 mod 2 is zero
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 5, + "x": 13, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 13 is divisible by primes so far
      \n\n \n
      235711
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 13
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 14, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 14, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 14 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 14 mod 2 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 15, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 15 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 15 mod 3 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 16, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 16, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 16 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 16 mod 2 is zero
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 6, + "x": 17, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 17 is divisible by primes so far
      \n\n \n
      235711
      13
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 17
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 18, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 18, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 18 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Not Prime: 18 mod 2 is zero
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 1, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 2, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 2, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 3, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 3, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 5, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 4, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 7, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 5, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 11, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 6, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 6, + "primeSofar": true, + "nprimes": 7, + "x": 19, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 13, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 19 is divisible by primes so far
      \n\n \n
      235711
      1317
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Found a new prime 19
      \n\n \n
      235711
      131719
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 8, + "x": 20, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 17, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "HtmlFrame", + "Matrix", + "htmlPage", + "BOLD", + "primes", + "nprimes", + "x", + "primeSofar", + "px", + "div" + ], + "html_output": "\n\n

      Animated Sieve of Erastosthenes

      \n
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      \n
      \n
      \n\n", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Matrix": [ + "REF", + 5 + ], + "px": 0, + "primeSofar": true, + "nprimes": 8, + "x": 20, + "primes": [ + "REF", + 19 + ], + "HtmlFrame": [ + "REF", + 1 + ], + "div": 17, + "htmlPage": [ + "REF", + 18 + ], + "BOLD": "color:red;font-weight:bold;" + }, + "heap": { + "1": [ + "CLASS", + "HtmlFrame", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "makeEofPage", + [ + "REF", + 3 + ] + ], + [ + "makeFrame", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, template, banner)", + null + ], + "3": [ + "FUNCTION", + "makeEofPage(self)", + null + ], + "4": [ + "FUNCTION", + "makeFrame(self, template)", + null + ], + "5": [ + "CLASS", + "Matrix", + [], + [ + "__getitem__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ], + [ + "__setitem__", + [ + "REF", + 8 + ] + ], + [ + "__str__", + [ + "REF", + 9 + ] + ], + [ + "getcol", + [ + "REF", + 10 + ] + ], + [ + "getrow", + [ + "REF", + 11 + ] + ], + [ + "populate", + [ + "REF", + 12 + ] + ], + [ + "renderHtml", + [ + "REF", + 13 + ] + ], + [ + "setcolVal", + [ + "REF", + 14 + ] + ], + [ + "setcolVals", + [ + "REF", + 15 + ] + ], + [ + "setrowVal", + [ + "REF", + 16 + ] + ], + [ + "setrowVals", + [ + "REF", + 17 + ] + ] + ], + "6": [ + "FUNCTION", + "__getitem__(self, coords)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, nrows, ncols, data, dftFormat, dftStyle, title, tableAttr, tableHeaders, Expand)", + null + ], + "8": [ + "FUNCTION", + "__setitem__(self, coords, value)", + null + ], + "9": [ + "FUNCTION", + "__str__(self)", + null + ], + "10": [ + "FUNCTION", + "getcol(self, col)", + null + ], + "11": [ + "FUNCTION", + "getrow(self, row)", + null + ], + "12": [ + "FUNCTION", + "populate(self, lists)", + null + ], + "13": [ + "FUNCTION", + "renderHtml(self, wrap)", + null + ], + "14": [ + "FUNCTION", + "setcolVal(self, col, value)", + null + ], + "15": [ + "FUNCTION", + "setcolVals(self, col, values)", + null + ], + "16": [ + "FUNCTION", + "setrowVal(self, row, value)", + null + ], + "17": [ + "FUNCTION", + "setrowVals(self, row, values)", + null + ], + "18": [ + "INSTANCE", + "HtmlFrame", + [ + "banner", + "Animated Sieve of Erastosthenes" + ], + [ + "item1", + "
      Testing if 20 is divisible by primes so far
      \n\n \n
      235711
      131719
      " + ], + [ + "item2", + "" + ], + [ + "item3", + "" + ], + [ + "outputOn", + true + ], + [ + "template", + "\n\n

      %(banner)s

      \n
      %(item1)s
      \n
      %(item2)s
      \n
      %(item3)s
      \n\n" + ] + ], + "19": [ + "INSTANCE_PPRINT", + "Matrix", + "Matrix-1x20" + ] + }, + "line": 24, + "event": "step_line" + } + ] +} diff --git a/v3/example-code/chris-meyers/optSieve.txt b/v3/example-code/chris-meyers/optSieve.txt new file mode 100644 index 000000000..98a2aa5da --- /dev/null +++ b/v3/example-code/chris-meyers/optSieve.txt @@ -0,0 +1,37 @@ +# o p t S i e v e . p y +# +# Chris Meyers. 09/25/2013 +# +from htmlFrame import HtmlFrame +from matrix import Matrix + +htmlPage = HtmlFrame() +htmlPage.banner = "Animated Sieve of Erastosthenes" +BOLD = "color:red;font-weight:bold;" + +primes = Matrix(1,20) +primes.tableAttr = 'cellspacing="0" cellpadding="10"' +primes[0,0] = 2 +nprimes = 1 + +for x in range(3,21) : + primeSofar = True + for px in range(nprimes) : + primes.title = "Testing if %s is divisible by primes so far" % x + primes.style[0,px] = BOLD + htmlPage.item1 = primes.renderHtml(wrap=5) + htmlPage.makeFrame() #break + primes.style[0,px] = "" + div = primes[0,px] + if x % div == 0 : primeSofar = False + if not primeSofar : break + + if primeSofar : + primes[0,nprimes] = x + nprimes += 1 + primes.title = "Found a new prime %s" % x + else : + primes.title = "Not Prime: %s mod %s is zero" % (x,div) + htmlPage.item1 = primes.renderHtml(wrap=5) + htmlPage.makeFrame() + diff --git a/v3/example-code/closures/closure1.golden b/v3/example-code/closures/closure1.golden new file mode 100644 index 000000000..51d175606 --- /dev/null +++ b/v3/example-code/closures/closure1.golden @@ -0,0 +1,567 @@ +{ + "code": "def foo(y):\n def bar(x):\n return x + y\n return bar\n\nb = foo(1)\nb(2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure1.golden_py3 b/v3/example-code/closures/closure1.golden_py3 new file mode 100644 index 000000000..51d175606 --- /dev/null +++ b/v3/example-code/closures/closure1.golden_py3 @@ -0,0 +1,567 @@ +{ + "code": "def foo(y):\n def bar(x):\n return x + y\n return bar\n\nb = foo(1)\nb(2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 2 + ], + "bar": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure1.txt b/v3/example-code/closures/closure1.txt new file mode 100644 index 000000000..1b784657b --- /dev/null +++ b/v3/example-code/closures/closure1.txt @@ -0,0 +1,7 @@ +def foo(y): + def bar(x): + return x + y + return bar + +b = foo(1) +b(2) diff --git a/v3/example-code/closures/closure2.golden b/v3/example-code/closures/closure2.golden new file mode 100644 index 000000000..57084967a --- /dev/null +++ b/v3/example-code/closures/closure2.golden @@ -0,0 +1,1764 @@ +{ + "code": "def foo(y):\n def bar(x):\n return x + y\n return bar\n\ndef foo_deux(y):\n def bar_deux(x):\n return x + y\n return bar_deux\n\nb = foo(1)\nb_deux = foo_deux(1000)\n\nb(2) \nb_deux(2000)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p", + "ordered_varnames": [ + "y", + "bar_deux" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 3000, + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure2.golden_py3 b/v3/example-code/closures/closure2.golden_py3 new file mode 100644 index 000000000..57084967a --- /dev/null +++ b/v3/example-code/closures/closure2.golden_py3 @@ -0,0 +1,1764 @@ +{ + "code": "def foo(y):\n def bar(x):\n return x + y\n return bar\n\ndef foo_deux(y):\n def bar_deux(x):\n return x + y\n return bar_deux\n\nb = foo(1)\nb_deux = foo_deux(1000)\n\nb(2) \nb_deux(2000)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "foo_deux": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p", + "ordered_varnames": [ + "y", + "bar_deux" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b" + ], + "stdout": "", + "func_name": "foo_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "bar_deux", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 3000, + "x": 2000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar_deux", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "bar_deux_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "foo_deux", + "b", + "b_deux" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 1, + "__return__": [ + "REF", + 3 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "y", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 1000, + "__return__": [ + "REF", + 4 + ], + "bar_deux": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo_deux", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_deux_f2_p_z", + "ordered_varnames": [ + "y", + "bar_deux", + "__return__" + ] + } + ], + "globals": { + "b_deux": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "foo_deux": [ + "REF", + 2 + ], + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(y)", + null + ], + "2": [ + "FUNCTION", + "foo_deux(y)", + null + ], + "3": [ + "FUNCTION", + "bar(x)", + 1 + ], + "4": [ + "FUNCTION", + "bar_deux(x)", + 2 + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure2.txt b/v3/example-code/closures/closure2.txt new file mode 100644 index 000000000..dd036ff92 --- /dev/null +++ b/v3/example-code/closures/closure2.txt @@ -0,0 +1,15 @@ +def foo(y): + def bar(x): + return x + y + return bar + +def foo_deux(y): + def bar_deux(x): + return x + y + return bar_deux + +b = foo(1) +b_deux = foo_deux(1000) + +b(2) +b_deux(2000) diff --git a/v3/example-code/closures/closure3.golden b/v3/example-code/closures/closure3.golden new file mode 100644 index 000000000..7a968114d --- /dev/null +++ b/v3/example-code/closures/closure3.golden @@ -0,0 +1,1400 @@ +{ + "code": "def foo(x):\n def bar(y):\n def baz(z):\n return len(x) + len(y) + len(z)\n return baz\n return bar([4,5,6,7])\n\nl = [1,2,3]\nx = foo(l)\nx([8,9,10,11,12])\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p", + "ordered_varnames": [ + "y", + "baz" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 12, + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure3.golden_py3 b/v3/example-code/closures/closure3.golden_py3 new file mode 100644 index 000000000..7a968114d --- /dev/null +++ b/v3/example-code/closures/closure3.golden_py3 @@ -0,0 +1,1400 @@ +{ + "code": "def foo(x):\n def bar(y):\n def baz(z):\n return len(x) + len(y) + len(z)\n return baz\n return bar([4,5,6,7])\n\nl = [1,2,3]\nx = foo(l)\nx([8,9,10,11,12])\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p", + "ordered_varnames": [ + "y", + "baz" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "baz", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 12, + "z": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "baz", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "baz_f3", + "ordered_varnames": [ + "z", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ], + "6": [ + "LIST", + 8, + 9, + 10, + 11, + 12 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "l", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": [ + "REF", + 2 + ], + "bar": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "bar", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 5 + ], + "baz": [ + "REF", + 5 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "bar", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "bar_f2_p_z", + "ordered_varnames": [ + "y", + "baz", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 5 + ], + "foo": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "LIST", + 1, + 2, + 3 + ], + "3": [ + "FUNCTION", + "bar(y)", + 1 + ], + "4": [ + "LIST", + 4, + 5, + 6, + 7 + ], + "5": [ + "FUNCTION", + "baz(z)", + 2 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure3.txt b/v3/example-code/closures/closure3.txt new file mode 100644 index 000000000..9a34ed2d1 --- /dev/null +++ b/v3/example-code/closures/closure3.txt @@ -0,0 +1,10 @@ +def foo(x): + def bar(y): + def baz(z): + return len(x) + len(y) + len(z) + return baz + return bar([4,5,6,7]) + +l = [1,2,3] +x = foo(l) +x([8,9,10,11,12]) diff --git a/v3/example-code/closures/closure4.golden b/v3/example-code/closures/closure4.golden new file mode 100644 index 000000000..d26bb55af --- /dev/null +++ b/v3/example-code/closures/closure4.golden @@ -0,0 +1,1457 @@ +{ + "code": "def f(x):\n def g(y):\n return x + y\n return g\n\ng1 = f(1)\ng2 = f(2)\ng1(3) + g2(4)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3, + "__return__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4, + "__return__": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure4.golden_py3 b/v3/example-code/closures/closure4.golden_py3 new file mode 100644 index 000000000..d26bb55af --- /dev/null +++ b/v3/example-code/closures/closure4.golden_py3 @@ -0,0 +1,1457 @@ +{ + "code": "def f(x):\n def g(y):\n return x + y\n return g\n\ng1 = f(1)\ng2 = f(2)\ng1(3) + g2(4)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 3, + "__return__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f3", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 4, + "__return__": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "g1", + "g2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 2, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "g2": [ + "REF", + 3 + ], + "g1": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y)", + 1 + ], + "3": [ + "FUNCTION", + "g(y)", + 2 + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure4.txt b/v3/example-code/closures/closure4.txt new file mode 100644 index 000000000..664625712 --- /dev/null +++ b/v3/example-code/closures/closure4.txt @@ -0,0 +1,8 @@ +def f(x): + def g(y): + return x + y + return g + +g1 = f(1) +g2 = f(2) +g1(3) + g2(4) diff --git a/v3/example-code/closures/closure5.golden b/v3/example-code/closures/closure5.golden new file mode 100644 index 000000000..3251000b6 --- /dev/null +++ b/v3/example-code/closures/closure5.golden @@ -0,0 +1,7684 @@ +{ + "code": "def f(x):\n def g(y, z):\n if z == 0:\n return y\n return g(x+y+z, z-1)\n return lambda: g(0, x)\n\nfoo = f(3)\nbar = f(4)\nbaz = foo() + bar()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "__return__": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "__return__": 15, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "__return__": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "__return__": 15, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "__return__": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "__return__": 26, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "__return__": 26, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "__return__": 26, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "__return__": 26, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 26 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar", + "baz" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "bar": [ + "REF", + 5 + ], + "foo": [ + "REF", + 3 + ], + "baz": 41, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure5.golden_py3 b/v3/example-code/closures/closure5.golden_py3 new file mode 100644 index 000000000..3251000b6 --- /dev/null +++ b/v3/example-code/closures/closure5.golden_py3 @@ -0,0 +1,7684 @@ +{ + "code": "def f(x):\n def g(y, z):\n if z == 0:\n return y\n return g(x+y+z, z-1)\n return lambda: g(0, x)\n\nfoo = f(3)\nbar = f(4)\nbaz = foo() + bar()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "y": 15, + "__return__": 15, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f7", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "y": 11, + "__return__": 15, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f6", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 6, + "__return__": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f5", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 0, + "__return__": 15, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "z": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "y": 26, + "__return__": 26, + "z": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f13", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "z": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "y": 21, + "__return__": 26, + "z": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f12", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "z": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "y": 15, + "__return__": 26, + "z": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f11", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "z": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "y": 8, + "__return__": 26, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f10", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [] + }, + { + "frame_id": 9, + "encoded_locals": { + "y": 0, + "__return__": 26, + "z": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "g_f9", + "ordered_varnames": [ + "y", + "z", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 26 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 3 + ], + "bar": [ + "REF", + 5 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "foo", + "bar", + "baz" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "x": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "x": 4, + "g": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f2_p_z", + "ordered_varnames": [ + "x", + "g", + "__return__" + ] + } + ], + "globals": { + "bar": [ + "REF", + 5 + ], + "foo": [ + "REF", + 3 + ], + "baz": 41, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x)", + null + ], + "2": [ + "FUNCTION", + "g(y, z)", + 1 + ], + "3": [ + "FUNCTION", + "()", + 1 + ], + "4": [ + "FUNCTION", + "g(y, z)", + 2 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/closure5.txt b/v3/example-code/closures/closure5.txt new file mode 100644 index 000000000..df094d247 --- /dev/null +++ b/v3/example-code/closures/closure5.txt @@ -0,0 +1,10 @@ +def f(x): + def g(y, z): + if z == 0: + return y + return g(x+y+z, z-1) + return lambda: g(0, x) + +foo = f(3) +bar = f(4) +baz = foo() + bar() diff --git a/v3/example-code/closures/lambda-param.golden b/v3/example-code/closures/lambda-param.golden new file mode 100644 index 000000000..981686dd2 --- /dev/null +++ b/v3/example-code/closures/lambda-param.golden @@ -0,0 +1,758 @@ +{ + "code": "def foo(x):\n bar(lambda y: x + y)\n\ndef bar(a):\n print(a(20))\n\nfoo(10)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20, + "__return__": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 10 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/lambda-param.golden_py3 b/v3/example-code/closures/lambda-param.golden_py3 new file mode 100644 index 000000000..981686dd2 --- /dev/null +++ b/v3/example-code/closures/lambda-param.golden_py3 @@ -0,0 +1,758 @@ +{ + "code": "def foo(x):\n bar(lambda y: x + y)\n\ndef bar(a):\n print(a(20))\n\nfoo(10)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 20, + "__return__": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ], + "3": [ + "FUNCTION", + "(y)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 10 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo", + "bar" + ], + "stdout": "30\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 10 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "foo", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "foo_f1_p_z", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ], + "bar": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo(x)", + null + ], + "2": [ + "FUNCTION", + "bar(a)", + null + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/lambda-param.txt b/v3/example-code/closures/lambda-param.txt new file mode 100644 index 000000000..4944f2c20 --- /dev/null +++ b/v3/example-code/closures/lambda-param.txt @@ -0,0 +1,7 @@ +def foo(x): + bar(lambda y: x + y) + +def bar(a): + print(a(20)) + +foo(10) diff --git a/v3/example-code/closures/student-torture.golden b/v3/example-code/closures/student-torture.golden new file mode 100644 index 000000000..bb48036aa --- /dev/null +++ b/v3/example-code/closures/student-torture.golden @@ -0,0 +1,11 @@ +{ + "code": "# Example to torture students\n# from UC Berkeley CS61a\n# (only works in Python 3)\n\ndef f(t):\n def g(t):\n def h():\n nonlocal t\n t += 1\n return h, lambda: t\n h, gt = g(0)\n return h, gt, lambda: t\n\nh, gt, ft = f(0)\nft(), gt()\nh()\nft(), gt()\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 8)", + "line": 8, + "event": "uncaught_exception", + "offset": 22 + } + ] +} diff --git a/v3/example-code/closures/student-torture.golden_py3 b/v3/example-code/closures/student-torture.golden_py3 new file mode 100644 index 000000000..b6d799315 --- /dev/null +++ b/v3/example-code/closures/student-torture.golden_py3 @@ -0,0 +1,3726 @@ +{ + "code": "# Example to torture students\n# from UC Berkeley CS61a\n# (only works in Python 3)\n\ndef f(t):\n def g(t):\n def h():\n nonlocal t\n t += 1\n return h, lambda: t\n h, gt = g(0)\n return h, gt, lambda: t\n\nh, gt, ft = f(0)\nft(), gt()\nh()\nft(), gt()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p", + "ordered_varnames": [ + "t", + "h" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g", + "h", + "gt" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 17, + "event": "return" + } + ] +} diff --git a/v3/example-code/closures/student-torture.txt b/v3/example-code/closures/student-torture.txt new file mode 100644 index 000000000..c4fa0a10e --- /dev/null +++ b/v3/example-code/closures/student-torture.txt @@ -0,0 +1,17 @@ +# Example to torture students +# from UC Berkeley CS61a +# (only works in Python 3) + +def f(t): + def g(t): + def h(): + nonlocal t + t += 1 + return h, lambda: t + h, gt = g(0) + return h, gt, lambda: t + +h, gt, ft = f(0) +ft(), gt() +h() +ft(), gt() diff --git a/v3/example-code/decorators.golden b/v3/example-code/decorators.golden new file mode 100644 index 000000000..67355fc21 --- /dev/null +++ b/v3/example-code/decorators.golden @@ -0,0 +1,1892 @@ +{ + "code": "def make_bold(fn):\n return lambda : \"\" + fn() + \"\"\n\ndef make_italic(fn):\n return lambda : \"\" + fn() + \"\"\n\n@make_bold\n@make_italic\ndef hello():\n return \"hello world\"\n \nhelloHTML = hello()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello", + "helloHTML" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ], + "helloHTML": "hello world" + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/example-code/decorators.golden_py3 b/v3/example-code/decorators.golden_py3 new file mode 100644 index 000000000..67355fc21 --- /dev/null +++ b/v3/example-code/decorators.golden_py3 @@ -0,0 +1,1892 @@ +{ + "code": "def make_bold(fn):\n return lambda : \"\" + fn() + \"\"\n\ndef make_italic(fn):\n return lambda : \"\" + fn() + \"\"\n\n@make_bold\n@make_italic\ndef hello():\n return \"hello world\"\n \nhelloHTML = hello()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_italic", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2", + "ordered_varnames": [ + "fn" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic" + ], + "stdout": "", + "func_name": "make_bold", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "hello", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "hello", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "hello_f5", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": "hello world" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "make_bold", + "make_italic", + "hello", + "helloHTML" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "fn": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_italic", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_italic_f1_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "fn": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "make_bold", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "make_bold_f2_p_z", + "ordered_varnames": [ + "fn", + "__return__" + ] + } + ], + "globals": { + "make_bold": [ + "REF", + 1 + ], + "make_italic": [ + "REF", + 2 + ], + "hello": [ + "REF", + 5 + ], + "helloHTML": "hello world" + }, + "heap": { + "1": [ + "FUNCTION", + "make_bold(fn)", + null + ], + "2": [ + "FUNCTION", + "make_italic(fn)", + null + ], + "3": [ + "FUNCTION", + "hello()", + null + ], + "4": [ + "FUNCTION", + "()", + 1 + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/example-code/decorators.txt b/v3/example-code/decorators.txt new file mode 100644 index 000000000..b267bac5f --- /dev/null +++ b/v3/example-code/decorators.txt @@ -0,0 +1,12 @@ +def make_bold(fn): + return lambda : "" + fn() + "" + +def make_italic(fn): + return lambda : "" + fn() + "" + +@make_bold +@make_italic +def hello(): + return "hello world" + +helloHTML = hello() diff --git a/v3/example-code/fact.golden b/v3/example-code/fact.golden new file mode 100644 index 000000000..6f756d707 --- /dev/null +++ b/v3/example-code/fact.golden @@ -0,0 +1,1909 @@ +{ + "code": "# dumb recursive factorial\ndef fact(n):\n if (n <= 1):\n return 1\n else:\n return n * fact(n - 1)\n\nprint(fact(6))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 1, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 2, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 6, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 24, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 120, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 720, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "720\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/example-code/fact.golden_py3 b/v3/example-code/fact.golden_py3 new file mode 100644 index 000000000..6f756d707 --- /dev/null +++ b/v3/example-code/fact.golden_py3 @@ -0,0 +1,1909 @@ +{ + "code": "# dumb recursive factorial\ndef fact(n):\n if (n <= 1):\n return 1\n else:\n return n * fact(n - 1)\n\nprint(fact(6))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 1, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f6", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 2, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 6, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f4", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 24, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f3", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 120, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f2", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "", + "func_name": "fact", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 720, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "fact", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "fact_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "fact" + ], + "stdout": "720\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "fact": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "fact(n)", + null + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/example-code/fact.txt b/v3/example-code/fact.txt similarity index 88% rename from example-code/fact.txt rename to v3/example-code/fact.txt index d956324b0..a6b6f446f 100644 --- a/example-code/fact.txt +++ b/v3/example-code/fact.txt @@ -5,4 +5,4 @@ def fact(n): else: return n * fact(n - 1) -print fact(6) +print(fact(6)) diff --git a/v3/example-code/fib.golden b/v3/example-code/fib.golden new file mode 100644 index 000000000..7afe29d04 --- /dev/null +++ b/v3/example-code/fib.golden @@ -0,0 +1,7545 @@ +{ + "code": "# Infinite Fibonacci!!!\n\narr = [1, 1]\n\nprint(arr[0])\n\nwhile True:\n print(arr[-1])\n tmp = sum(arr)\n arr.append(tmp)\n del arr[0]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1, + 2 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5, + 8 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8, + 13 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13, + 21 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21, + 34 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34, + 55 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55, + 89 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89, + 144 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144, + 233 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233, + 377 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377, + 610 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610, + 987 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987, + 1597 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597, + 2584 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584, + 4181 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181, + 6765 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765, + 10946 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946, + 17711 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711, + 28657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657, + 46368 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368, + 75025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025, + 121393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393, + 196418 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418, + 317811 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811, + 514229 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229, + 832040 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040, + 1346269 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269, + 2178309 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309, + 3524578 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578, + 5702887 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887, + 9227465 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465, + 14930352 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352, + 24157817 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817, + 39088169 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169, + 63245986 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986, + 102334155 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155, + 165580141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141, + 267914296 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296, + 433494437 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437, + 701408733 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733, + 1134903170 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170, + 1836311903 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903, + 2971215073 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073, + 4807526976 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976, + 7778742049 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049, + 12586269025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025, + 20365011074 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074, + 32951280099 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099, + 53316291173 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173, + 86267571272 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272, + 139583862445 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445, + 225851433717 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717, + 365435296162 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162, + 591286729879 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879, + 956722026041 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041, + 1548008755920 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920, + 2504730781961 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/example-code/fib.golden_py3 b/v3/example-code/fib.golden_py3 new file mode 100644 index 000000000..55c3b980b --- /dev/null +++ b/v3/example-code/fib.golden_py3 @@ -0,0 +1,7560 @@ +{ + "code": "# Infinite Fibonacci!!!\n\narr = [1, 1]\n\nprint(arr[0])\n\nwhile True:\n print(arr[-1])\n tmp = sum(arr)\n arr.append(tmp)\n del arr[0]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1, + 2 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5, + 8 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8, + 13 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13, + 21 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21, + 34 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34, + 55 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55, + 89 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89, + 144 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144, + 233 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233, + 377 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377, + 610 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610, + 987 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987, + 1597 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597, + 2584 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584, + 4181 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181, + 6765 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765, + 10946 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946, + 17711 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711, + 28657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657, + 46368 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368, + 75025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025, + 121393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393, + 196418 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418, + 317811 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811, + 514229 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229, + 832040 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040, + 1346269 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269, + 2178309 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309, + 3524578 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578, + 5702887 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887, + 9227465 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465, + 14930352 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352, + 24157817 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817, + 39088169 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169, + 63245986 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986, + 102334155 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155, + 165580141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141, + 267914296 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296, + 433494437 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437, + 701408733 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733, + 1134903170 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170, + 1836311903 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903, + 2971215073 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073, + 4807526976 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976, + 7778742049 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049, + 12586269025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025, + 20365011074 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074, + 32951280099 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099, + 53316291173 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173, + 86267571272 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272, + 139583862445 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445, + 225851433717 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717, + 365435296162 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162, + 591286729879 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879, + 956722026041 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041, + 1548008755920 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920, + 2504730781961 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961, + 4052739537881 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881, + 6557470319842 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842, + 10610209857723 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723, + 17167680177565 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565, + 27777890035288 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288, + 44945570212853 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853, + 72723460248141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141, + 117669030460994 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994, + 190392490709135 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135, + 308061521170129 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129, + 498454011879264 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264, + 806515533049393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393, + 1304969544928657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657, + 2111485077978050 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050, + 3416454622906707 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2111485077978050, + 3416454622906707 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/example-code/fib.txt b/v3/example-code/fib.txt similarity index 76% rename from example-code/fib.txt rename to v3/example-code/fib.txt index 96c8799c2..d5447f19b 100644 --- a/example-code/fib.txt +++ b/v3/example-code/fib.txt @@ -2,10 +2,10 @@ arr = [1, 1] -print arr[0] +print(arr[0]) while True: - print arr[-1] + print(arr[-1]) tmp = sum(arr) arr.append(tmp) del arr[0] diff --git a/v3/example-code/filter.golden b/v3/example-code/filter.golden new file mode 100644 index 000000000..1e1111344 --- /dev/null +++ b/v3/example-code/filter.golden @@ -0,0 +1,1505 @@ +{ + "code": "input = [(\"Mary\", 27), (\"Joe\", 30), (\"Ruth\", 43), (\"Bob\", 17), (\"Jenny\", 22)]\n\nyoungPeople = []\n\nfor (person, age) in input:\n if age < 30:\n youngPeople.append(person)\n else:\n print(\"HAHA \" + person + \" is too old!\")\n\nprint(\"There are \" + str(len(youngPeople)) + \" young people\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 1 + ], + "youngPeople": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\nThere are 3 young people\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 11, + "event": "return" + } + ] +} diff --git a/v3/example-code/filter.golden_py3 b/v3/example-code/filter.golden_py3 new file mode 100644 index 000000000..1e1111344 --- /dev/null +++ b/v3/example-code/filter.golden_py3 @@ -0,0 +1,1505 @@ +{ + "code": "input = [(\"Mary\", 27), (\"Joe\", 30), (\"Ruth\", 43), (\"Bob\", 17), (\"Jenny\", 22)]\n\nyoungPeople = []\n\nfor (person, age) in input:\n if age < 30:\n youngPeople.append(person)\n else:\n print(\"HAHA \" + person + \" is too old!\")\n\nprint(\"There are \" + str(len(youngPeople)) + \" young people\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 1 + ], + "youngPeople": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Mary", + "youngPeople": [ + "REF", + 7 + ], + "age": 27, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Joe", + "youngPeople": [ + "REF", + 7 + ], + "age": 30, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Ruth", + "youngPeople": [ + "REF", + 7 + ], + "age": 43, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Bob", + "youngPeople": [ + "REF", + 7 + ], + "age": 17, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "youngPeople", + "person", + "age" + ], + "stdout": "HAHA Joe is too old!\nHAHA Ruth is too old!\nThere are 3 young people\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "person": "Jenny", + "youngPeople": [ + "REF", + 7 + ], + "age": 22, + "input": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 3 + ], + [ + "REF", + 4 + ], + [ + "REF", + 5 + ], + [ + "REF", + 6 + ] + ], + "2": [ + "TUPLE", + "Mary", + 27 + ], + "3": [ + "TUPLE", + "Joe", + 30 + ], + "4": [ + "TUPLE", + "Ruth", + 43 + ], + "5": [ + "TUPLE", + "Bob", + 17 + ], + "6": [ + "TUPLE", + "Jenny", + 22 + ], + "7": [ + "LIST", + "Mary", + "Bob", + "Jenny" + ] + }, + "line": 11, + "event": "return" + } + ] +} diff --git a/example-code/filter.txt b/v3/example-code/filter.txt similarity index 62% rename from example-code/filter.txt rename to v3/example-code/filter.txt index f3b3916fb..e09de854c 100644 --- a/example-code/filter.txt +++ b/v3/example-code/filter.txt @@ -6,6 +6,6 @@ for (person, age) in input: if age < 30: youngPeople.append(person) else: - print "HAHA", person, "is too old!" + print("HAHA " + person + " is too old!") -print "There are", len(youngPeople), "young people" +print("There are " + str(len(youngPeople)) + " young people") diff --git a/v3/example-code/for-else.golden b/v3/example-code/for-else.golden new file mode 100644 index 000000000..479a67f6f --- /dev/null +++ b/v3/example-code/for-else.golden @@ -0,0 +1,1634 @@ +{ + "code": "# find primes using a for-else construct\nfor n in range(2, 10):\n x_range = range(2, n)\n for x in x_range:\n if n % x == 0:\n break\n else:\n # loop fell through without finding a factor\n print(n)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "n": 2 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "LIST" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 3 + }, + "heap": { + "1": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 4, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 5, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 4 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 4 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 4 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 5, + "x": 4 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 6, + "x": 4 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 4 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 7, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 3 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 3 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 4 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 4 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 5 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 5 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 8, + "x": 6 + }, + "heap": { + "2": [ + "LIST", + 2, + 3, + 4, + 5, + 6 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 6 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 9, + "x": 2 + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 2 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 3 + ], + "n": 9, + "x": 3 + }, + "heap": { + "3": [ + "LIST", + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/for-else.golden_py3 b/v3/example-code/for-else.golden_py3 new file mode 100644 index 000000000..ad8845399 --- /dev/null +++ b/v3/example-code/for-else.golden_py3 @@ -0,0 +1,1475 @@ +{ + "code": "# find primes using a for-else construct\nfor n in range(2, 10):\n x_range = range(2, n)\n for x in x_range:\n if n % x == 0:\n break\n else:\n # loop fell through without finding a factor\n print(n)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "n": 2 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 3, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 4, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 4, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 5, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 5, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 6, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 6, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 7, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 4 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 5 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 5 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 7, + "x": 6 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 8, + "x": 6 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 8, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 1 + ], + "n": 9, + "x": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "range" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 2 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "n", + "x_range", + "x" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x_range": [ + "REF", + 2 + ], + "n": 9, + "x": 3 + }, + "heap": { + "2": [ + "INSTANCE", + "range" + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/example-code/for-else.txt b/v3/example-code/for-else.txt new file mode 100644 index 000000000..1eaf5fff7 --- /dev/null +++ b/v3/example-code/for-else.txt @@ -0,0 +1,9 @@ +# find primes using a for-else construct +for n in range(2, 10): + x_range = range(2, n) + for x in x_range: + if n % x == 0: + break + else: + # loop fell through without finding a factor + print(n) diff --git a/v3/example-code/gen_primes.golden b/v3/example-code/gen_primes.golden new file mode 100644 index 000000000..480ece9bb --- /dev/null +++ b/v3/example-code/gen_primes.golden @@ -0,0 +1,12544 @@ +{ + "code": "# Use generator to generate a stream of primes\ndef gen_primes():\n n = 2\n while True:\n for x in range(2, n):\n if n % x == 0:\n break\n else:\n yield n\n n += 1\n\nfor p in gen_primes():\n print(p)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": 5, + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 3, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 3, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": 7, + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 4, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 4, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 5, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 5, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 8, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 8, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": 11, + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 3, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 3, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 4, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 4, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 5, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 5, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 6, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 6, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 7, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 7, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 8, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 8, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": 13, + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 4, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 4, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 5, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 5, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 6, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 6, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 7, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 7, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 8, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 8, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 9, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 9, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 10, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 10, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 14, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 14, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 15, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 15, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "__return__": 17, + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 3, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 3, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 4, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 4, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 5, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 5, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 6, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 6, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 7, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 7, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 8, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 8, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 9, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 9, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 10, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 10, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 11, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 11, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 12, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 12, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 14, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 14, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 17, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 17, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "__return__": 19, + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 4, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 4, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 5, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 5, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 6, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 6, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 7, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 7, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 8, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 8, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 9, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 9, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 10, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 10, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 11, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 11, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 12, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 12, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 13, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 13, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 14, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 14, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 16, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 16, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 19, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 19, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 20, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/example-code/gen_primes.golden_py3 b/v3/example-code/gen_primes.golden_py3 new file mode 100644 index 000000000..802f27735 --- /dev/null +++ b/v3/example-code/gen_primes.golden_py3 @@ -0,0 +1,12512 @@ +{ + "code": "# Use generator to generate a stream of primes\ndef gen_primes():\n n = 2\n while True:\n for x in range(2, n):\n if n % x == 0:\n break\n else:\n yield n\n n += 1\n\nfor p in gen_primes():\n print(p)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes" + ], + "stdout": "", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f2", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 2, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 2, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": 5, + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f3", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 3, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 2, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 3, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 3, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 4, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": 7, + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f4", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 5, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 2, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 3, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 4, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 4, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 5, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 5, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 6, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 8, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 8, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": 11, + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f5", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 7, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 2, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 3, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 3, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 4, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 4, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 5, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 5, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 6, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 6, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 7, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 7, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 8, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 8, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 10, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": 13, + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f6", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 11, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 14 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 16 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 2, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 3, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 4, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 4, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 5, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 5, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 6, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 6, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 7, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 7, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 8, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 8, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 9, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 9, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 10, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 10, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 12, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 14, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 14, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 15, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 15, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "__return__": 17, + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f7", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 13, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 18 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 2, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 3, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 3, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 4, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 4, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 5, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 5, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 6, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 6, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 7, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 7, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 8, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 8, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 9, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 9, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 10, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 10, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 11, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 11, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 12, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 12, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 14, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 14, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 16, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 17, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 17, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "__return__": 19, + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f8", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 17, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 22 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 2, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 4, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 4, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 5, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 5, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 6, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 6, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 7, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 7, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 8, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 8, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 9, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 9, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 10, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 10, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 11, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 11, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 12, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 12, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 13, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 13, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 14, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 14, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 16, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 16, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 18, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 19, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 19, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 20, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 20, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 21, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 21, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "__return__": 23, + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f9", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "p": 19, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 22, + "n": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 22, + "n": 24 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 24 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 24 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 24 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 2, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 3, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 3, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_primes", + "p" + ], + "stdout": "2\n3\n5\n7\n11\n13\n17\n19\n23\n", + "func_name": "gen_primes", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 4, + "n": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_primes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_primes_f10", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "p": 23, + "gen_primes": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_primes()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/example-code/gen_primes.txt b/v3/example-code/gen_primes.txt new file mode 100644 index 000000000..2b047187b --- /dev/null +++ b/v3/example-code/gen_primes.txt @@ -0,0 +1,14 @@ +# Use generator to generate a stream of primes +def gen_primes(): + n = 2 + while True: + for x in range(2, n): + if n % x == 0: + break + else: + yield n + n += 1 + +for p in gen_primes(): + print(p) + diff --git a/v3/example-code/genexpr.golden b/v3/example-code/genexpr.golden new file mode 100644 index 000000000..aebc24d6d --- /dev/null +++ b/v3/example-code/genexpr.golden @@ -0,0 +1,2170 @@ +{ + "code": "# NB: there's a known bug when frames of exited functions are displayed\nx = (i for i in range(10))\n\nfor e in x:\n print(e)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0, + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1, + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2, + "__return__": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3, + "__return__": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4, + "__return__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5, + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6, + "__return__": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7, + "__return__": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8, + "__return__": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9, + "__return__": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "listiterator", + "" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/example-code/genexpr.golden_py3 b/v3/example-code/genexpr.golden_py3 new file mode 100644 index 000000000..10ad0ebac --- /dev/null +++ b/v3/example-code/genexpr.golden_py3 @@ -0,0 +1,2170 @@ +{ + "code": "# NB: there's a known bug when frames of exited functions are displayed\nx = (i for i in range(10))\n\nfor e in x:\n print(e)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0, + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1, + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 0 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2, + "__return__": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 1 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3, + "__return__": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 2 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4, + "__return__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f5", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 3 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5, + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 4 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6, + "__return__": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f7", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 5 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7, + "__return__": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 6 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8, + "__return__": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 7 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9, + "__return__": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 8 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "i": 9, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f11", + "ordered_varnames": [ + ".0", + "i", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "range_iterator" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "e" + ], + "stdout": "0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "e": 9 + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/example-code/genexpr.txt b/v3/example-code/genexpr.txt new file mode 100644 index 000000000..46bac3e62 --- /dev/null +++ b/v3/example-code/genexpr.txt @@ -0,0 +1,5 @@ +# NB: there's a known bug when frames of exited functions are displayed +x = (i for i in range(10)) + +for e in x: + print(e) diff --git a/v3/example-code/happy.golden b/v3/example-code/happy.golden new file mode 100644 index 000000000..ea1a6a7e0 --- /dev/null +++ b/v3/example-code/happy.golden @@ -0,0 +1,952 @@ +{ + "code": "# From \"Teaching with Python\" by John Zelle\ndef happy():\n print(\"Happy Birthday to you!\")\n\ndef sing(P):\n happy()\n happy()\n print(\"Happy Birthday dear \" + P + \"!\")\n happy()\n\n# main\nsing(\"Fred\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P", + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/example-code/happy.golden_py3 b/v3/example-code/happy.golden_py3 new file mode 100644 index 000000000..ea1a6a7e0 --- /dev/null +++ b/v3/example-code/happy.golden_py3 @@ -0,0 +1,952 @@ +{ + "code": "# From \"Teaching with Python\" by John Zelle\ndef happy():\n print(\"Happy Birthday to you!\")\n\ndef sing(P):\n happy()\n happy()\n print(\"Happy Birthday dear \" + P + \"!\")\n happy()\n\n# main\nsing(\"Fred\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "happy", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "P": "Fred" + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "happy", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "happy_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "sing", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "P": "Fred" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sing", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sing_f1", + "ordered_varnames": [ + "P", + "__return__" + ] + } + ], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "happy", + "sing" + ], + "stdout": "Happy Birthday to you!\nHappy Birthday to you!\nHappy Birthday dear Fred!\nHappy Birthday to you!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "sing": [ + "REF", + 2 + ], + "happy": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "happy()", + null + ], + "2": [ + "FUNCTION", + "sing(P)", + null + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/example-code/happy.txt b/v3/example-code/happy.txt new file mode 100644 index 000000000..c2dd73280 --- /dev/null +++ b/v3/example-code/happy.txt @@ -0,0 +1,12 @@ +# From "Teaching with Python" by John Zelle +def happy(): + print("Happy Birthday to you!") + +def sing(P): + happy() + happy() + print("Happy Birthday dear " + P + "!") + happy() + +# main +sing("Fred") diff --git a/v3/example-code/ins_sort.golden b/v3/example-code/ins_sort.golden new file mode 100644 index 000000000..837933f43 --- /dev/null +++ b/v3/example-code/ins_sort.golden @@ -0,0 +1,3538 @@ +{ + "code": "# from: http://www.ece.uci.edu/~chou/py02/python.html\ndef InsertionSort(A):\n for j in range(1, len(A)):\n key = A[j]\n i = j - 1\n while (i >= 0) and (A[i] > key):\n A[i+1] = A[i]\n i = i - 1\n A[i+1] = key\n\ninput = [8, 3, 9, 15, 29, 7, 10]\nInsertionSort(input)\nprint(input)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "j": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 2, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 3, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 4, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 6, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "__return__": null, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i", + "__return__" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "[3, 7, 8, 9, 10, 15, 29]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 13, + "event": "return" + } + ] +} diff --git a/v3/example-code/ins_sort.golden_py3 b/v3/example-code/ins_sort.golden_py3 new file mode 100644 index 000000000..837933f43 --- /dev/null +++ b/v3/example-code/ins_sort.golden_py3 @@ -0,0 +1,3538 @@ +{ + "code": "# from: http://www.ece.uci.edu/~chou/py02/python.html\ndef InsertionSort(A):\n for j in range(1, len(A)):\n key = A[j]\n i = j - 1\n while (i >= 0) and (A[i] > key):\n A[i+1] = A[i]\n i = i - 1\n A[i+1] = key\n\ninput = [8, 3, 9, 15, 29, 7, 10]\nInsertionSort(input)\nprint(input)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "j": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 3, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 8, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 1, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 2, + "key": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": -1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 2, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 3, + "key": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 3, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 4, + "key": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 4, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 7, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 29, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 15, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 2, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 9, + 9, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 1, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 8, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 5, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 6, + "key": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 0, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 10 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 5, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 29, + 29 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 4, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 15, + 15, + 29 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "InsertionSort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 2 + ], + "i": 3, + "__return__": null, + "j": 6, + "key": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "InsertionSort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "InsertionSort_f1", + "ordered_varnames": [ + "A", + "j", + "key", + "i", + "__return__" + ] + } + ], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "InsertionSort", + "input" + ], + "stdout": "[3, 7, 8, 9, 10, 15, 29]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": [ + "REF", + 2 + ], + "InsertionSort": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "InsertionSort(A)", + null + ], + "2": [ + "LIST", + 3, + 7, + 8, + 9, + 10, + 15, + 29 + ] + }, + "line": 13, + "event": "return" + } + ] +} diff --git a/example-code/ins_sort.txt b/v3/example-code/ins_sort.txt similarity index 95% rename from example-code/ins_sort.txt rename to v3/example-code/ins_sort.txt index d6598fae2..4c2dacc0f 100644 --- a/example-code/ins_sort.txt +++ b/v3/example-code/ins_sort.txt @@ -10,4 +10,4 @@ def InsertionSort(A): input = [8, 3, 9, 15, 29, 7, 10] InsertionSort(input) -print input +print(input) diff --git a/v3/example-code/linked-lists/ll1.golden b/v3/example-code/linked-lists/ll1.golden new file mode 100644 index 000000000..1da0bbfb2 --- /dev/null +++ b/v3/example-code/linked-lists/ll1.golden @@ -0,0 +1,1977 @@ +{ + "code": "# use lists\nx = None\nfor i in range(6, 0, -1):\n x = [i, x]\n\n# use tuples\ny = None\nfor i in range(6, 0, -1):\n y = (i, y)\n\nx[1][0]=y[1][1] # courtesy of John DeNero!\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": null + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": null + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 6 + ], + "y": null + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 9 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 9 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 10 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 10 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 11 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 11 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 12 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 12 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + [ + "REF", + 10 + ], + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 11, + "event": "return" + } + ] +} diff --git a/v3/example-code/linked-lists/ll1.golden_py3 b/v3/example-code/linked-lists/ll1.golden_py3 new file mode 100644 index 000000000..1da0bbfb2 --- /dev/null +++ b/v3/example-code/linked-lists/ll1.golden_py3 @@ -0,0 +1,1977 @@ +{ + "code": "# use lists\nx = None\nfor i in range(6, 0, -1):\n x = [i, x]\n\n# use tuples\ny = None\nfor i in range(6, 0, -1):\n y = (i, y)\n\nx[1][0]=y[1][1] # courtesy of John DeNero!\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": null + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": null + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 6 + ], + "y": null + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 7 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 9 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 9 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 10 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 10 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 11 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 11 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 12 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ], + "y": [ + "REF", + 12 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + 2, + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "LIST", + 6, + null + ], + "2": [ + "LIST", + 5, + [ + "REF", + 1 + ] + ], + "3": [ + "LIST", + 4, + [ + "REF", + 2 + ] + ], + "4": [ + "LIST", + 3, + [ + "REF", + 3 + ] + ], + "5": [ + "LIST", + [ + "REF", + 10 + ], + [ + "REF", + 4 + ] + ], + "6": [ + "LIST", + 1, + [ + "REF", + 5 + ] + ], + "7": [ + "TUPLE", + 6, + null + ], + "8": [ + "TUPLE", + 5, + [ + "REF", + 7 + ] + ], + "9": [ + "TUPLE", + 4, + [ + "REF", + 8 + ] + ], + "10": [ + "TUPLE", + 3, + [ + "REF", + 9 + ] + ], + "11": [ + "TUPLE", + 2, + [ + "REF", + 10 + ] + ], + "12": [ + "TUPLE", + 1, + [ + "REF", + 11 + ] + ] + }, + "line": 11, + "event": "return" + } + ] +} diff --git a/v3/example-code/linked-lists/ll1.txt b/v3/example-code/linked-lists/ll1.txt new file mode 100644 index 000000000..223f228be --- /dev/null +++ b/v3/example-code/linked-lists/ll1.txt @@ -0,0 +1,12 @@ +# use lists +x = None +for i in range(6, 0, -1): + x = [i, x] + +# use tuples +y = None +for i in range(6, 0, -1): + y = (i, y) + +x[1][0]=y[1][1] # courtesy of John DeNero! + diff --git a/v3/example-code/linked-lists/ll2.golden b/v3/example-code/linked-lists/ll2.golden new file mode 100644 index 000000000..4d47af384 --- /dev/null +++ b/v3/example-code/linked-lists/ll2.golden @@ -0,0 +1,8047 @@ +{ + "code": "# use dicts\nx = None\nfor i in range(6, 0, -1):\n x = {'data': i, 'next': x}\n\n# use objects\nclass Node:\n def __init__(self, data, next):\n self.data = data\n self.next = next\n\ny = None\nfor i in range(6, 0, -1):\n y = Node(i, y)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": null + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 14 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "y": [ + "REF", + 14 + ], + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 13, + "event": "return" + } + ] +} diff --git a/v3/example-code/linked-lists/ll2.golden_py3 b/v3/example-code/linked-lists/ll2.golden_py3 new file mode 100644 index 000000000..4d47af384 --- /dev/null +++ b/v3/example-code/linked-lists/ll2.golden_py3 @@ -0,0 +1,8047 @@ +{ + "code": "# use dicts\nx = None\nfor i in range(6, 0, -1):\n x = {'data': i, 'next': x}\n\n# use objects\nclass Node:\n def __init__(self, data, next):\n self.data = data\n self.next = next\n\ny = None\nfor i in range(6, 0, -1):\n y = Node(i, y)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": null + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": null + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 9 + ], + "data": 6, + "next": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": null, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 6, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 10 + ], + "data": 5, + "next": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f2", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 9 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 5, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 11 + ], + "data": 4, + "next": [ + "REF", + 10 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 10 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 4, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 12 + ], + "data": 3, + "next": [ + "REF", + 11 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f4", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 11 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 3, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 13 + ], + "data": 2, + "next": [ + "REF", + 12 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f5", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 12 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 2, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node" + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 14 + ], + "data": 1, + "next": [ + "REF", + 13 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f6", + "ordered_varnames": [ + "self", + "data", + "next", + "__return__" + ] + } + ], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 13 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "i": 1, + "y": [ + "REF", + 14 + ], + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "Node", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Node": [ + "REF", + 7 + ], + "y": [ + "REF", + 14 + ], + "i": 1, + "x": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "2": [ + "DICT", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 1 + ] + ] + ], + "3": [ + "DICT", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 2 + ] + ] + ], + "4": [ + "DICT", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 3 + ] + ] + ], + "5": [ + "DICT", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 4 + ] + ] + ], + "6": [ + "DICT", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 5 + ] + ] + ], + "7": [ + "CLASS", + "Node", + [], + [ + "__init__", + [ + "REF", + 8 + ] + ] + ], + "8": [ + "FUNCTION", + "__init__(self, data, next)", + null + ], + "9": [ + "INSTANCE", + "Node", + [ + "data", + 6 + ], + [ + "next", + null + ] + ], + "10": [ + "INSTANCE", + "Node", + [ + "data", + 5 + ], + [ + "next", + [ + "REF", + 9 + ] + ] + ], + "11": [ + "INSTANCE", + "Node", + [ + "data", + 4 + ], + [ + "next", + [ + "REF", + 10 + ] + ] + ], + "12": [ + "INSTANCE", + "Node", + [ + "data", + 3 + ], + [ + "next", + [ + "REF", + 11 + ] + ] + ], + "13": [ + "INSTANCE", + "Node", + [ + "data", + 2 + ], + [ + "next", + [ + "REF", + 12 + ] + ] + ], + "14": [ + "INSTANCE", + "Node", + [ + "data", + 1 + ], + [ + "next", + [ + "REF", + 13 + ] + ] + ] + }, + "line": 13, + "event": "return" + } + ] +} diff --git a/v3/example-code/linked-lists/ll2.txt b/v3/example-code/linked-lists/ll2.txt new file mode 100644 index 000000000..3a1181499 --- /dev/null +++ b/v3/example-code/linked-lists/ll2.txt @@ -0,0 +1,15 @@ +# use dicts +x = None +for i in range(6, 0, -1): + x = {'data': i, 'next': x} + +# use objects +class Node: + def __init__(self, data, next): + self.data = data + self.next = next + +y = None +for i in range(6, 0, -1): + y = Node(i, y) + diff --git a/v3/example-code/list-comp.golden b/v3/example-code/list-comp.golden new file mode 100644 index 000000000..6a4ea270a --- /dev/null +++ b/v3/example-code/list-comp.golden @@ -0,0 +1,404 @@ +{ + "code": "ppl = ['Alice', 'Bob', 'Carol', 'Doug']\nexcited_ppl = [e + '!!' for e in ppl]\nppl_len = [len(x) for x in ppl]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Alice", + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Bob", + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Carol", + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "excited_ppl": [ + "REF", + 2 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "ppl": [ + "REF", + 1 + ], + "excited_ppl": [ + "REF", + 2 + ], + "x": "Alice" + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "ppl": [ + "REF", + 1 + ], + "excited_ppl": [ + "REF", + 2 + ], + "x": "Bob" + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "ppl": [ + "REF", + 1 + ], + "excited_ppl": [ + "REF", + 2 + ], + "x": "Carol" + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "e": "Doug", + "ppl": [ + "REF", + 1 + ], + "excited_ppl": [ + "REF", + 2 + ], + "x": "Doug" + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "e", + "excited_ppl", + "x", + "ppl_len" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "excited_ppl": [ + "REF", + 2 + ], + "ppl_len": [ + "REF", + 3 + ], + "e": "Doug", + "x": "Doug", + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "3": [ + "LIST", + 5, + 3, + 5, + 4 + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/example-code/list-comp.golden_py3 b/v3/example-code/list-comp.golden_py3 new file mode 100644 index 000000000..5d999ccae --- /dev/null +++ b/v3/example-code/list-comp.golden_py3 @@ -0,0 +1,926 @@ +{ + "code": "ppl = ['Alice', 'Bob', 'Carol', 'Doug']\nexcited_ppl = [e + '!!' for e in ppl]\nppl_len = [len(x) for x in ppl]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "e": "Alice" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "e" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "e": "Bob" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "e" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "e": "Carol" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "e" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "e": "Doug" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "e" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 2 + ], + "__return__": [ + "REF", + 3 + ], + "e": "Doug" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "e", + "__return__" + ] + } + ], + "globals": { + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "2": [ + "INSTANCE", + "list_iterator" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ], + "x": "Alice" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "x" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ], + "x": "Bob" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "x" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ], + "x": "Carol" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "x" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ], + "x": "Doug" + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "x" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + ".0": [ + "REF", + 4 + ], + "x": "Doug", + "__return__": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + ".0", + "x", + "__return__" + ] + } + ], + "globals": { + "excited_ppl": [ + "REF", + 3 + ], + "ppl": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "4": [ + "INSTANCE", + "list_iterator" + ], + "5": [ + "LIST", + 5, + 3, + 5, + 4 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "ppl", + "excited_ppl", + "ppl_len" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ppl": [ + "REF", + 1 + ], + "excited_ppl": [ + "REF", + 3 + ], + "ppl_len": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "LIST", + "Alice", + "Bob", + "Carol", + "Doug" + ], + "3": [ + "LIST", + "Alice!!", + "Bob!!", + "Carol!!", + "Doug!!" + ], + "5": [ + "LIST", + 5, + 3, + 5, + 4 + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/example-code/list-comp.txt b/v3/example-code/list-comp.txt new file mode 100644 index 000000000..b5a158904 --- /dev/null +++ b/v3/example-code/list-comp.txt @@ -0,0 +1,3 @@ +ppl = ['Alice', 'Bob', 'Carol', 'Doug'] +excited_ppl = [e + '!!' for e in ppl] +ppl_len = [len(x) for x in ppl] diff --git a/v3/example-code/map.golden b/v3/example-code/map.golden new file mode 100644 index 000000000..48e8fc1e0 --- /dev/null +++ b/v3/example-code/map.golden @@ -0,0 +1,7043 @@ +{ + "code": "# Functional programming with map\n# Adapted from MIT 6.01 course notes (Section A.2.3)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\ndef map(func, lst):\n if lst == []:\n return []\n else:\n return [func(lst[0])] + map(func, lst[1:])\n \ndef halveElements(lst):\n return map(lambda x: x / 2.0, lst)\n \ninput = [2, 4, 6, 8, 10]\noutput = halveElements(input)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "1.0" + ], + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "2.0" + ], + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "3.0" + ], + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "4.0" + ], + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": [ + "REF", + 10 + ], + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ], + "10": [ + "LIST" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": [ + "REF", + 11 + ], + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "11": [ + "LIST", + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": [ + "REF", + 12 + ], + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "12": [ + "LIST", + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": [ + "REF", + 13 + ], + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "13": [ + "LIST", + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "REF", + 14 + ], + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "14": [ + "LIST", + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input", + "output" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p_z", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "output": [ + "REF", + 15 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/example-code/map.golden_py3 b/v3/example-code/map.golden_py3 new file mode 100644 index 000000000..48e8fc1e0 --- /dev/null +++ b/v3/example-code/map.golden_py3 @@ -0,0 +1,7043 @@ +{ + "code": "# Functional programming with map\n# Adapted from MIT 6.01 course notes (Section A.2.3)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\ndef map(func, lst):\n if lst == []:\n return []\n else:\n return [func(lst[0])] + map(func, lst[1:])\n \ndef halveElements(lst):\n return map(lambda x: x / 2.0, lst)\n \ninput = [2, 4, 6, 8, 10]\noutput = halveElements(input)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "1.0" + ], + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "2.0" + ], + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "3.0" + ], + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "4.0" + ], + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": [ + "REF", + 10 + ], + "lst": [ + "REF", + 9 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f12", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "9": [ + "LIST" + ], + "10": [ + "LIST" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": [ + "REF", + 11 + ], + "lst": [ + "REF", + 8 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "8": [ + "LIST", + 10 + ], + "11": [ + "LIST", + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": [ + "REF", + 12 + ], + "lst": [ + "REF", + 7 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "7": [ + "LIST", + 8, + 10 + ], + "12": [ + "LIST", + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": [ + "REF", + 13 + ], + "lst": [ + "REF", + 6 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "6": [ + "LIST", + 6, + 8, + 10 + ], + "13": [ + "LIST", + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "REF", + 14 + ], + "lst": [ + "REF", + 5 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "5": [ + "LIST", + 4, + 6, + 8, + 10 + ], + "14": [ + "LIST", + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ], + "func": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "func", + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input" + ], + "stdout": "", + "func_name": "halveElements", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "halveElements", + "input", + "output" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 15 + ], + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "halveElements", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "halveElements_f1_p_z", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "halveElements": [ + "REF", + 2 + ], + "output": [ + "REF", + 15 + ], + "input": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(func, lst)", + null + ], + "2": [ + "FUNCTION", + "halveElements(lst)", + null + ], + "3": [ + "LIST", + 2, + 4, + 6, + 8, + 10 + ], + "15": [ + "LIST", + [ + "SPECIAL_FLOAT", + "1.0" + ], + [ + "SPECIAL_FLOAT", + "2.0" + ], + [ + "SPECIAL_FLOAT", + "3.0" + ], + [ + "SPECIAL_FLOAT", + "4.0" + ], + [ + "SPECIAL_FLOAT", + "5.0" + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/example-code/map.txt b/v3/example-code/map.txt similarity index 100% rename from example-code/map.txt rename to v3/example-code/map.txt diff --git a/v3/example-code/memo_fib.golden b/v3/example-code/memo_fib.golden new file mode 100644 index 000000000..abb03047a --- /dev/null +++ b/v3/example-code/memo_fib.golden @@ -0,0 +1,10715 @@ +{ + "code": "# use memoization to make the recursive Fibonacci\n# implementation only take O(n) time and space\n\nMemoTable = {}\n\ndef MemoizedFib(n):\n if n <= 2:\n return 1\n\n if n in MemoTable:\n return MemoTable[n]\n\n MemoTable[n] = MemoizedFib(n-1) + MemoizedFib(n-2)\n return MemoTable[n]\n\n\nres = MemoizedFib(10)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 1, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 1, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 1, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 3, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 5, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": 3, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 8, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 5, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 13, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": 8, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 21, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 13, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 34, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "__return__": 21, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 55, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib", + "res" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "res": 55, + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 17, + "event": "return" + } + ] +} diff --git a/v3/example-code/memo_fib.golden_py3 b/v3/example-code/memo_fib.golden_py3 new file mode 100644 index 000000000..abb03047a --- /dev/null +++ b/v3/example-code/memo_fib.golden_py3 @@ -0,0 +1,10715 @@ +{ + "code": "# use memoization to make the recursive Fibonacci\n# implementation only take O(n) time and space\n\nMemoTable = {}\n\ndef MemoizedFib(n):\n if n <= 2:\n return 1\n\n if n in MemoTable:\n return MemoTable[n]\n\n MemoTable[n] = MemoizedFib(n-1) + MemoizedFib(n-2)\n return MemoTable[n]\n\n\nres = MemoizedFib(10)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 1, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f9", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 1, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f10", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f8", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 1, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f11", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 3, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f7", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 2, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f12", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 5, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f6", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": 3, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f13", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 8, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 5, + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f14", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 13, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f4", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": 8, + "n": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f15", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 21, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f3", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 13, + "n": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f16", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 34, + "n": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f2", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "__return__": 21, + "n": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f17", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib" + ], + "stdout": "", + "func_name": "MemoizedFib", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 55, + "n": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "MemoizedFib", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "MemoizedFib_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "MemoTable", + "MemoizedFib", + "res" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MemoizedFib": [ + "REF", + 2 + ], + "res": 55, + "MemoTable": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 3, + 2 + ], + [ + 4, + 3 + ], + [ + 5, + 5 + ], + [ + 6, + 8 + ], + [ + 7, + 13 + ], + [ + 8, + 21 + ], + [ + 9, + 34 + ], + [ + 10, + 55 + ] + ], + "2": [ + "FUNCTION", + "MemoizedFib(n)", + null + ] + }, + "line": 17, + "event": "return" + } + ] +} diff --git a/example-code/memo_fib.txt b/v3/example-code/memo_fib.txt similarity index 100% rename from example-code/memo_fib.txt rename to v3/example-code/memo_fib.txt diff --git a/v3/example-code/metaclass.golden b/v3/example-code/metaclass.golden new file mode 100644 index 000000000..2dc46e253 --- /dev/null +++ b/v3/example-code/metaclass.golden @@ -0,0 +1,1883 @@ +{ + "code": "class Metaclass(type):\n def __new__(mcs, name, bases, dict_):\n print(\"__NEW__\")\n cls = super(Metaclass, mcs).__new__(mcs, name, bases, dict_)\n return cls\n\n def __init__(cls, name, bases, dict_):\n print(\"__INIT__\")\n super(Metaclass, cls).__init__(name, bases, dict_)\n\n def __call__(cls, *args):\n print(\"__CALL__\")\n obj = super(Metaclass, cls).__call__(*args)\n return obj\n\nclass MyObj(object):\n __metaclass__ = Metaclass\n\nMyObj()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "__NEW__\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "dict_": [ + "REF", + 5 + ], + "bases": [ + "REF", + 6 + ], + "name": "MyObj", + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "cls", + "name", + "bases", + "dict_" + ] + } + ], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "DICT", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "6": [ + "TUPLE", + [ + "REF", + 7 + ] + ], + "7": [ + "CLASS", + "object", + [], + [ + "__class__", + [ + "REF", + 8 + ] + ], + [ + "__delattr__", + [ + "REF", + 9 + ] + ], + [ + "__format__", + [ + "REF", + 10 + ] + ], + [ + "__getattribute__", + [ + "REF", + 11 + ] + ], + [ + "__hash__", + [ + "REF", + 12 + ] + ], + [ + "__init__", + [ + "REF", + 13 + ] + ], + [ + "__new__", + [ + "REF", + 14 + ] + ], + [ + "__reduce__", + [ + "REF", + 15 + ] + ], + [ + "__reduce_ex__", + [ + "REF", + 16 + ] + ], + [ + "__repr__", + [ + "REF", + 17 + ] + ], + [ + "__setattr__", + [ + "REF", + 18 + ] + ], + [ + "__sizeof__", + [ + "REF", + 19 + ] + ], + [ + "__str__", + [ + "REF", + 20 + ] + ], + [ + "__subclasshook__", + [ + "REF", + 21 + ] + ] + ], + "8": [ + "getset_descriptor", + "" + ], + "9": [ + "wrapper_descriptor", + "" + ], + "10": [ + "method_descriptor", + "" + ], + "11": [ + "wrapper_descriptor", + "" + ], + "12": [ + "wrapper_descriptor", + "" + ], + "13": [ + "wrapper_descriptor", + "" + ], + "14": [ + "FUNCTION", + "__new__(...)", + null + ], + "15": [ + "method_descriptor", + "" + ], + "16": [ + "method_descriptor", + "" + ], + "17": [ + "wrapper_descriptor", + "" + ], + "18": [ + "wrapper_descriptor", + "" + ], + "19": [ + "method_descriptor", + "" + ], + "20": [ + "wrapper_descriptor", + "" + ], + "21": [ + "classmethod_descriptor", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "__NEW__\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "dict_": [ + "REF", + 5 + ], + "bases": [ + "REF", + 6 + ], + "name": "MyObj", + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "cls", + "name", + "bases", + "dict_" + ] + } + ], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "DICT", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "6": [ + "TUPLE", + [ + "REF", + 7 + ] + ], + "7": [ + "CLASS", + "object", + [], + [ + "__class__", + [ + "REF", + 8 + ] + ], + [ + "__delattr__", + [ + "REF", + 9 + ] + ], + [ + "__format__", + [ + "REF", + 10 + ] + ], + [ + "__getattribute__", + [ + "REF", + 11 + ] + ], + [ + "__hash__", + [ + "REF", + 12 + ] + ], + [ + "__init__", + [ + "REF", + 13 + ] + ], + [ + "__new__", + [ + "REF", + 14 + ] + ], + [ + "__reduce__", + [ + "REF", + 15 + ] + ], + [ + "__reduce_ex__", + [ + "REF", + 16 + ] + ], + [ + "__repr__", + [ + "REF", + 17 + ] + ], + [ + "__setattr__", + [ + "REF", + 18 + ] + ], + [ + "__sizeof__", + [ + "REF", + 19 + ] + ], + [ + "__str__", + [ + "REF", + 20 + ] + ], + [ + "__subclasshook__", + [ + "REF", + 21 + ] + ] + ], + "8": [ + "getset_descriptor", + "" + ], + "9": [ + "wrapper_descriptor", + "" + ], + "10": [ + "method_descriptor", + "" + ], + "11": [ + "wrapper_descriptor", + "" + ], + "12": [ + "wrapper_descriptor", + "" + ], + "13": [ + "wrapper_descriptor", + "" + ], + "14": [ + "FUNCTION", + "__new__(...)", + null + ], + "15": [ + "method_descriptor", + "" + ], + "16": [ + "method_descriptor", + "" + ], + "17": [ + "wrapper_descriptor", + "" + ], + "18": [ + "wrapper_descriptor", + "" + ], + "19": [ + "method_descriptor", + "" + ], + "20": [ + "wrapper_descriptor", + "" + ], + "21": [ + "classmethod_descriptor", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "__NEW__\n__INIT__\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "dict_": [ + "REF", + 5 + ], + "bases": [ + "REF", + 6 + ], + "name": "MyObj", + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "cls", + "name", + "bases", + "dict_" + ] + } + ], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "DICT", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "6": [ + "TUPLE", + [ + "REF", + 7 + ] + ], + "7": [ + "CLASS", + "object", + [], + [ + "__class__", + [ + "REF", + 8 + ] + ], + [ + "__delattr__", + [ + "REF", + 9 + ] + ], + [ + "__format__", + [ + "REF", + 10 + ] + ], + [ + "__getattribute__", + [ + "REF", + 11 + ] + ], + [ + "__hash__", + [ + "REF", + 12 + ] + ], + [ + "__init__", + [ + "REF", + 13 + ] + ], + [ + "__new__", + [ + "REF", + 14 + ] + ], + [ + "__reduce__", + [ + "REF", + 15 + ] + ], + [ + "__reduce_ex__", + [ + "REF", + 16 + ] + ], + [ + "__repr__", + [ + "REF", + 17 + ] + ], + [ + "__setattr__", + [ + "REF", + 18 + ] + ], + [ + "__sizeof__", + [ + "REF", + 19 + ] + ], + [ + "__str__", + [ + "REF", + 20 + ] + ], + [ + "__subclasshook__", + [ + "REF", + 21 + ] + ] + ], + "8": [ + "getset_descriptor", + "" + ], + "9": [ + "wrapper_descriptor", + "" + ], + "10": [ + "method_descriptor", + "" + ], + "11": [ + "wrapper_descriptor", + "" + ], + "12": [ + "wrapper_descriptor", + "" + ], + "13": [ + "wrapper_descriptor", + "" + ], + "14": [ + "FUNCTION", + "__new__(...)", + null + ], + "15": [ + "method_descriptor", + "" + ], + "16": [ + "method_descriptor", + "" + ], + "17": [ + "wrapper_descriptor", + "" + ], + "18": [ + "wrapper_descriptor", + "" + ], + "19": [ + "method_descriptor", + "" + ], + "20": [ + "wrapper_descriptor", + "" + ], + "21": [ + "classmethod_descriptor", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "__NEW__\n__INIT__\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "dict_": [ + "REF", + 5 + ], + "bases": [ + "REF", + 6 + ], + "name": "MyObj", + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "cls", + "name", + "bases", + "dict_", + "__return__" + ] + } + ], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "DICT", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "6": [ + "TUPLE", + [ + "REF", + 7 + ] + ], + "7": [ + "CLASS", + "object", + [], + [ + "__class__", + [ + "REF", + 8 + ] + ], + [ + "__delattr__", + [ + "REF", + 9 + ] + ], + [ + "__format__", + [ + "REF", + 10 + ] + ], + [ + "__getattribute__", + [ + "REF", + 11 + ] + ], + [ + "__hash__", + [ + "REF", + 12 + ] + ], + [ + "__init__", + [ + "REF", + 13 + ] + ], + [ + "__new__", + [ + "REF", + 14 + ] + ], + [ + "__reduce__", + [ + "REF", + 15 + ] + ], + [ + "__reduce_ex__", + [ + "REF", + 16 + ] + ], + [ + "__repr__", + [ + "REF", + 17 + ] + ], + [ + "__setattr__", + [ + "REF", + 18 + ] + ], + [ + "__sizeof__", + [ + "REF", + 19 + ] + ], + [ + "__str__", + [ + "REF", + 20 + ] + ], + [ + "__subclasshook__", + [ + "REF", + 21 + ] + ] + ], + "8": [ + "getset_descriptor", + "" + ], + "9": [ + "wrapper_descriptor", + "" + ], + "10": [ + "method_descriptor", + "" + ], + "11": [ + "wrapper_descriptor", + "" + ], + "12": [ + "wrapper_descriptor", + "" + ], + "13": [ + "wrapper_descriptor", + "" + ], + "14": [ + "FUNCTION", + "__new__(...)", + null + ], + "15": [ + "method_descriptor", + "" + ], + "16": [ + "method_descriptor", + "" + ], + "17": [ + "wrapper_descriptor", + "" + ], + "18": [ + "wrapper_descriptor", + "" + ], + "19": [ + "method_descriptor", + "" + ], + "20": [ + "wrapper_descriptor", + "" + ], + "21": [ + "classmethod_descriptor", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n", + "func_name": "__call__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "args": [ + "REF", + 23 + ], + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__call__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__call___f2", + "ordered_varnames": [ + "cls", + "args" + ] + } + ], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "23": [ + "TUPLE" + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n", + "func_name": "__call__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "args": [ + "REF", + 23 + ], + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__call__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__call___f2", + "ordered_varnames": [ + "cls", + "args" + ] + } + ], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "23": [ + "TUPLE" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n__CALL__\n", + "func_name": "__call__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "args": [ + "REF", + 23 + ], + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__call__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__call___f2", + "ordered_varnames": [ + "cls", + "args" + ] + } + ], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "23": [ + "TUPLE" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n__CALL__\n", + "func_name": "__call__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "args": [ + "REF", + 23 + ], + "obj": [ + "REF", + 24 + ], + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__call__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__call___f2", + "ordered_varnames": [ + "cls", + "args", + "obj" + ] + } + ], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "23": [ + "TUPLE" + ], + "24": [ + "INSTANCE", + "MyObj" + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n__CALL__\n", + "func_name": "__call__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "args": [ + "REF", + 23 + ], + "obj": [ + "REF", + 24 + ], + "cls": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__call__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__call___f2", + "ordered_varnames": [ + "cls", + "args", + "obj", + "__return__" + ] + } + ], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ], + "23": [ + "TUPLE" + ], + "24": [ + "INSTANCE", + "MyObj" + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "__NEW__\n__INIT__\n__CALL__\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "MyObj": [ + "REF", + 22 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "staticmethod", + "" + ], + "22": [ + "INSTANCE", + "Metaclass", + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 19, + "event": "return" + } + ] +} diff --git a/v3/example-code/metaclass.golden_py3 b/v3/example-code/metaclass.golden_py3 new file mode 100644 index 000000000..16f9fa582 --- /dev/null +++ b/v3/example-code/metaclass.golden_py3 @@ -0,0 +1,229 @@ +{ + "code": "class Metaclass(type):\n def __new__(mcs, name, bases, dict_):\n print(\"__NEW__\")\n cls = super(Metaclass, mcs).__new__(mcs, name, bases, dict_)\n return cls\n\n def __init__(cls, name, bases, dict_):\n print(\"__INIT__\")\n super(Metaclass, cls).__init__(name, bases, dict_)\n\n def __call__(cls, *args):\n print(\"__CALL__\")\n obj = super(Metaclass, cls).__call__(*args)\n return obj\n\nclass MyObj(object):\n __metaclass__ = Metaclass\n\nMyObj()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "INSTANCE", + "staticmethod" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MyObj": [ + "REF", + 5 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "INSTANCE", + "staticmethod" + ], + "5": [ + "CLASS", + "MyObj", + [], + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "Metaclass", + "MyObj" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "MyObj": [ + "REF", + 5 + ], + "Metaclass": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Metaclass", + [ + "type" + ], + [ + "__call__", + [ + "REF", + 2 + ] + ], + [ + "__init__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__call__(cls, *args)", + null + ], + "3": [ + "FUNCTION", + "__init__(cls, name, bases, dict_)", + null + ], + "4": [ + "INSTANCE", + "staticmethod" + ], + "5": [ + "CLASS", + "MyObj", + [], + [ + "__metaclass__", + [ + "REF", + 1 + ] + ] + ] + }, + "line": 19, + "event": "return" + } + ] +} diff --git a/v3/example-code/metaclass.txt b/v3/example-code/metaclass.txt new file mode 100644 index 000000000..16f1d75c7 --- /dev/null +++ b/v3/example-code/metaclass.txt @@ -0,0 +1,19 @@ +class Metaclass(type): + def __new__(mcs, name, bases, dict_): + print("__NEW__") + cls = super(Metaclass, mcs).__new__(mcs, name, bases, dict_) + return cls + + def __init__(cls, name, bases, dict_): + print("__INIT__") + super(Metaclass, cls).__init__(name, bases, dict_) + + def __call__(cls, *args): + print("__CALL__") + obj = super(Metaclass, cls).__call__(*args) + return obj + +class MyObj(object): + __metaclass__ = Metaclass + +MyObj() diff --git a/v3/example-code/nonlocal.golden b/v3/example-code/nonlocal.golden new file mode 100644 index 000000000..7f7631792 --- /dev/null +++ b/v3/example-code/nonlocal.golden @@ -0,0 +1,11 @@ +{ + "code": "# 'nonlocal' keyword is only in Python 3\ndef outer():\n x = 1\n def inner():\n nonlocal x\n x = 2\n y = x\n print(\"inner:\", x, y)\n inner()\n print(\"outer:\", x)\n\nouter()\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 5)", + "line": 5, + "event": "uncaught_exception", + "offset": 18 + } + ] +} diff --git a/v3/example-code/nonlocal.golden_py3 b/v3/example-code/nonlocal.golden_py3 new file mode 100644 index 000000000..e865e76cc --- /dev/null +++ b/v3/example-code/nonlocal.golden_py3 @@ -0,0 +1,667 @@ +{ + "code": "# 'nonlocal' keyword is only in Python 3\ndef outer():\n x = 1\n def inner():\n nonlocal x\n x = 2\n y = x\n print(\"inner:\", x, y)\n inner()\n print(\"outer:\", x)\n\nouter()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1", + "ordered_varnames": [] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1", + "ordered_varnames": [] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "inner", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "inner", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "inner_f2", + "ordered_varnames": [] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "inner", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "inner", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "inner_f2", + "ordered_varnames": [] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "inner", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "inner", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "inner_f2", + "ordered_varnames": [] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "", + "func_name": "inner", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "inner", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "inner_f2", + "ordered_varnames": [ + "y" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "inner: 2 2\n", + "func_name": "inner", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "inner", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "inner_f2", + "ordered_varnames": [ + "y", + "__return__" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "inner: 2 2\n", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "inner: 2 2\nouter: 2\n", + "func_name": "outer", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "outer", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p", + "ordered_varnames": [ + "inner", + "x", + "__return__" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "outer" + ], + "stdout": "inner: 2 2\nouter: 2\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 2, + "inner": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "outer", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "outer_f1_p_z", + "ordered_varnames": [ + "inner", + "x", + "__return__" + ] + } + ], + "globals": { + "outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "outer()", + null + ], + "2": [ + "FUNCTION", + "inner()", + 1 + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/example-code/nonlocal.txt b/v3/example-code/nonlocal.txt new file mode 100644 index 000000000..4bd156762 --- /dev/null +++ b/v3/example-code/nonlocal.txt @@ -0,0 +1,12 @@ +# 'nonlocal' keyword is only in Python 3 +def outer(): + x = 1 + def inner(): + nonlocal x + x = 2 + y = x + print("inner:", x, y) + inner() + print("outer:", x) + +outer() diff --git a/v3/example-code/oop_1.golden b/v3/example-code/oop_1.golden new file mode 100644 index 000000000..ef5496688 --- /dev/null +++ b/v3/example-code/oop_1.golden @@ -0,0 +1,1272 @@ +{ + "code": "# Object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Staff601()\nprint(pat.course)\n\npat.name = 'Pat'\npat.age = 60\npat.role = 'Professor'\n\nprint(pat.building)\npat.building = 32\nprint(pat.building)\n\nprint(pat.salutation())\nprint(Staff601.salutation(pat))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ] + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\nProfessor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/v3/example-code/oop_1.golden_py3 b/v3/example-code/oop_1.golden_py3 new file mode 100644 index 000000000..ef5496688 --- /dev/null +++ b/v3/example-code/oop_1.golden_py3 @@ -0,0 +1,1272 @@ +{ + "code": "# Object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Staff601()\nprint(pat.course)\n\npat.name = 'Pat'\npat.age = 60\npat.role = 'Professor'\n\nprint(pat.building)\npat.building = 32\nprint(pat.building)\n\nprint(pat.salutation())\nprint(Staff601.salutation(pat))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ] + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\nProfessor Pat\nProfessor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 2 + ] + ] + ], + "2": [ + "FUNCTION", + "salutation(self)", + null + ], + "3": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/example-code/oop_1.txt b/v3/example-code/oop_1.txt similarity index 77% rename from example-code/oop_1.txt rename to v3/example-code/oop_1.txt index f072f69f2..d04790552 100644 --- a/example-code/oop_1.txt +++ b/v3/example-code/oop_1.txt @@ -11,15 +11,15 @@ class Staff601: return self.role + ' ' + self.name pat = Staff601() -print pat.course +print(pat.course) pat.name = 'Pat' pat.age = 60 pat.role = 'Professor' -print pat.building +print(pat.building) pat.building = 32 -print pat.building +print(pat.building) -print pat.salutation() -print Staff601.salutation(pat) +print(pat.salutation()) +print(Staff601.salutation(pat)) diff --git a/v3/example-code/oop_2.golden b/v3/example-code/oop_2.golden new file mode 100644 index 000000000..67d2ab57b --- /dev/null +++ b/v3/example-code/oop_2.golden @@ -0,0 +1,1135 @@ +{ + "code": "# The __init__ 'constructor' - object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def __init__(self, name, role, years, salary):\n self.name = name\n self.role = role\n self.age = years\n self.salary = salary\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Staff601('Pat', 'Professor', 60, 100000)\nprint(pat.salutation())\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "name": "Pat", + "self": [ + "REF", + 4 + ], + "years": 60, + "role": "Professor", + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "Professor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 20, + "event": "return" + } + ] +} diff --git a/v3/example-code/oop_2.golden_py3 b/v3/example-code/oop_2.golden_py3 new file mode 100644 index 000000000..67d2ab57b --- /dev/null +++ b/v3/example-code/oop_2.golden_py3 @@ -0,0 +1,1135 @@ +{ + "code": "# The __init__ 'constructor' - object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def __init__(self, name, role, years, salary):\n self.name = name\n self.role = role\n self.age = years\n self.salary = salary\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Staff601('Pat', 'Professor', 60, 100000)\nprint(pat.salutation())\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "self": [ + "REF", + 4 + ], + "role": "Professor", + "name": "Pat", + "years": 60 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "salary": 100000, + "name": "Pat", + "self": [ + "REF", + 4 + ], + "years": 60, + "role": "Professor", + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "role", + "years", + "salary", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "Professor Pat", + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "Professor Pat\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ], + [ + "salutation", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, name, role, years, salary)", + null + ], + "3": [ + "FUNCTION", + "salutation(self)", + null + ], + "4": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ], + [ + "salary", + 100000 + ] + ] + }, + "line": 20, + "event": "return" + } + ] +} diff --git a/example-code/oop_2.txt b/v3/example-code/oop_2.txt similarity index 95% rename from example-code/oop_2.txt rename to v3/example-code/oop_2.txt index c4f0a534d..014c82790 100644 --- a/example-code/oop_2.txt +++ b/v3/example-code/oop_2.txt @@ -17,5 +17,5 @@ class Staff601: return self.role + ' ' + self.name pat = Staff601('Pat', 'Professor', 60, 100000) -print pat.salutation() +print(pat.salutation()) diff --git a/v3/example-code/oop_inherit.golden b/v3/example-code/oop_inherit.golden new file mode 100644 index 000000000..21edf4ec3 --- /dev/null +++ b/v3/example-code/oop_inherit.golden @@ -0,0 +1,1152 @@ +{ + "code": "# Inheritance - object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def giveRaise(self, percentage):\n self.salary = self.salary + self.salary * percentage\n\nclass Prof601(Staff601):\n salary = 100000\n\n def __init__(self, name, age):\n self.name = name\n self.giveRaise((age - 18) * 0.03)\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Prof601('Pat', 60)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601" + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601" + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 6 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 23, + "event": "return" + } + ] +} diff --git a/v3/example-code/oop_inherit.golden_py3 b/v3/example-code/oop_inherit.golden_py3 new file mode 100644 index 000000000..21edf4ec3 --- /dev/null +++ b/v3/example-code/oop_inherit.golden_py3 @@ -0,0 +1,1152 @@ +{ + "code": "# Inheritance - object-oriented programming intro\n# Adapted from MIT 6.01 course notes (Section 3.5)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\nclass Staff601:\n course = '6.01'\n building = 34\n room = 501\n\n def giveRaise(self, percentage):\n self.salary = self.salary + self.salary * percentage\n\nclass Prof601(Staff601):\n salary = 100000\n\n def __init__(self, name, age):\n self.name = name\n self.giveRaise((age - 18) * 0.03)\n\n def salutation(self):\n return self.role + ' ' + self.name\n\npat = Prof601('Pat', 60)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601" + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601" + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "giveRaise", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "percentage": 1.260, + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "giveRaise", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "giveRaise_f2", + "ordered_varnames": [ + "self", + "percentage", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "age": 60, + "name": "Pat", + "self": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "name", + "age", + "__return__" + ] + } + ], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "Staff601", + "Prof601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 6 + ], + "Prof601": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "giveRaise", + [ + "REF", + 2 + ] + ], + [ + "room", + 501 + ] + ], + "2": [ + "FUNCTION", + "giveRaise(self, percentage)", + null + ], + "3": [ + "CLASS", + "Prof601", + [ + "Staff601" + ], + [ + "__init__", + [ + "REF", + 4 + ] + ], + [ + "salary", + 100000 + ], + [ + "salutation", + [ + "REF", + 5 + ] + ] + ], + "4": [ + "FUNCTION", + "__init__(self, name, age)", + null + ], + "5": [ + "FUNCTION", + "salutation(self)", + null + ], + "6": [ + "INSTANCE", + "Prof601", + [ + "name", + "Pat" + ], + [ + "salary", + [ + "SPECIAL_FLOAT", + "226000.0" + ] + ] + ] + }, + "line": 23, + "event": "return" + } + ] +} diff --git a/example-code/oop_inherit.txt b/v3/example-code/oop_inherit.txt similarity index 100% rename from example-code/oop_inherit.txt rename to v3/example-code/oop_inherit.txt diff --git a/v3/example-code/oop_small.golden b/v3/example-code/oop_small.golden new file mode 100644 index 000000000..4325327d6 --- /dev/null +++ b/v3/example-code/oop_small.golden @@ -0,0 +1,1089 @@ +{ + "code": "class A:\n x = 1\n y = 'hello'\n\nclass B:\n z = 'bye'\n\nclass C(A,B):\n def salutation(self):\n return '%d %s %s' % (self.x, self.y, self.z)\n\ninst = C()\nprint(inst.salutation())\ninst.x = 100\nprint(inst.salutation())\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "B": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": "1 hello bye", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "100 hello bye", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n100 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/example-code/oop_small.golden_py3 b/v3/example-code/oop_small.golden_py3 new file mode 100644 index 000000000..4325327d6 --- /dev/null +++ b/v3/example-code/oop_small.golden_py3 @@ -0,0 +1,1089 @@ +{ + "code": "class A:\n x = 1\n y = 'hello'\n\nclass B:\n z = 'bye'\n\nclass C(A,B):\n def salutation(self):\n return '%d %s %s' % (self.x, self.y, self.z)\n\ninst = C()\nprint(inst.salutation())\ninst.x = 100\nprint(inst.salutation())\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "B": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": "1 hello bye", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C" + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n", + "func_name": "salutation", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "100 hello bye", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "salutation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "salutation_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "B", + "C", + "inst" + ], + "stdout": "1 hello bye\n100 hello bye\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "C": [ + "REF", + 3 + ], + "B": [ + "REF", + 2 + ], + "inst": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "x", + 1 + ], + [ + "y", + "hello" + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "z", + "bye" + ] + ], + "3": [ + "CLASS", + "C", + [ + "A", + "B" + ], + [ + "salutation", + [ + "REF", + 4 + ] + ] + ], + "4": [ + "FUNCTION", + "salutation(self)", + null + ], + "5": [ + "INSTANCE", + "C", + [ + "x", + 100 + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/example-code/oop_small.txt b/v3/example-code/oop_small.txt similarity index 78% rename from example-code/oop_small.txt rename to v3/example-code/oop_small.txt index e40400587..8a7ca559b 100644 --- a/example-code/oop_small.txt +++ b/v3/example-code/oop_small.txt @@ -10,6 +10,6 @@ class C(A,B): return '%d %s %s' % (self.x, self.y, self.z) inst = C() -print inst.salutation() +print(inst.salutation()) inst.x = 100 -print inst.salutation() +print(inst.salutation()) diff --git a/v3/example-code/py_tutorial.golden b/v3/example-code/py_tutorial.golden new file mode 100644 index 000000000..b2849cbd9 --- /dev/null +++ b/v3/example-code/py_tutorial.golden @@ -0,0 +1,4754 @@ +{ + "code": "# Philip's 10-minute intro to Python\n\n# numbers!\nage = 26\npi = 3.14159\n\n# strings!\ns = 'Rutherford Birchard Hayes'\ntokens = s.split()\nfirstName = tokens[0]\nmiddleName = tokens[1]\nlastName = tokens[2]\ns2 = firstName + ' ' + middleName + ' ' + lastName\n\n# 'if' statement - indentation matters!\nif (s == s2):\n print('yes!!!')\nelse:\n print('nooooooo')\n\n# list (mutable sequence)\nbeatles = ['John', 'Paul', 'George']\nbeatles.append('Ringo')\n\n# 'for' loop - indentation matters!\nfor b in beatles:\n print('Hello ' + b)\n\n# tuple (immutable sequence)\nages = (18, 21, 28, 21, 22, 18, 19, 34, 9)\n\n# set (no order, no duplicates)\nuniqueAges = set(ages)\nuniqueAges.add(18) # already in set, no effect\nuniqueAges.remove(21)\n\n# no guaranteed order when iterating over a set\nfor thisAge in uniqueAges:\n print(thisAge)\n\n# testing set membership\nif 18 in uniqueAges:\n print('There is an 18-year-old present!')\n\n# sorting\nbeatles.sort() # in-place\norderedUniqueAges = sorted(uniqueAges) # new list\n\n# dict - mapping unique keys to values\nnetWorth = {}\nnetWorth['Donald Trump'] = 3000000000\nnetWorth['Bill Gates'] = 58000000000\nnetWorth['Tom Cruise'] = 40000000\nnetWorth['Joe Postdoc'] = 20000\n\n# iterating over key-value pairs:\nfor (person, worth) in netWorth.items():\n if worth < 1000000:\n print('haha ' + person + ' is not a millionaire')\n\n# testing dict membership\nif 'Tom Cruise' in netWorth:\n print('show me the money!')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26, + "pi": 3.142 + }, + "heap": {}, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes" + }, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes" + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes", + "firstName": "Rutherford" + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "John", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "John", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Paul", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Paul", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "George", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "George", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 30, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 21, + 22, + 28 + ] + }, + "line": 34, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 21, + 22, + 28 + ] + }, + "line": 35, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 34, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 34, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 9, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 9, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 18, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 18, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 19, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 19, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 22, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 22, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 42, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 46, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 47, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "orderedUniqueAges": [ + "REF", + 5 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "uniqueAges": [ + "REF", + 4 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ] + }, + "line": 50, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT" + ] + }, + "line": 51, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ] + ] + }, + "line": 52, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ] + ] + }, + "line": 53, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 54, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Donald Trump", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 3000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Donald Trump", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 3000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Bill Gates", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 58000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Bill Gates", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 58000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 59, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 62, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 63, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\nshow me the money!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 63, + "event": "return" + } + ] +} diff --git a/v3/example-code/py_tutorial.golden_py3 b/v3/example-code/py_tutorial.golden_py3 new file mode 100644 index 000000000..b2849cbd9 --- /dev/null +++ b/v3/example-code/py_tutorial.golden_py3 @@ -0,0 +1,4754 @@ +{ + "code": "# Philip's 10-minute intro to Python\n\n# numbers!\nage = 26\npi = 3.14159\n\n# strings!\ns = 'Rutherford Birchard Hayes'\ntokens = s.split()\nfirstName = tokens[0]\nmiddleName = tokens[1]\nlastName = tokens[2]\ns2 = firstName + ' ' + middleName + ' ' + lastName\n\n# 'if' statement - indentation matters!\nif (s == s2):\n print('yes!!!')\nelse:\n print('nooooooo')\n\n# list (mutable sequence)\nbeatles = ['John', 'Paul', 'George']\nbeatles.append('Ringo')\n\n# 'for' loop - indentation matters!\nfor b in beatles:\n print('Hello ' + b)\n\n# tuple (immutable sequence)\nages = (18, 21, 28, 21, 22, 18, 19, 34, 9)\n\n# set (no order, no duplicates)\nuniqueAges = set(ages)\nuniqueAges.add(18) # already in set, no effect\nuniqueAges.remove(21)\n\n# no guaranteed order when iterating over a set\nfor thisAge in uniqueAges:\n print(thisAge)\n\n# testing set membership\nif 18 in uniqueAges:\n print('There is an 18-year-old present!')\n\n# sorting\nbeatles.sort() # in-place\norderedUniqueAges = sorted(uniqueAges) # new list\n\n# dict - mapping unique keys to values\nnetWorth = {}\nnetWorth['Donald Trump'] = 3000000000\nnetWorth['Bill Gates'] = 58000000000\nnetWorth['Tom Cruise'] = 40000000\nnetWorth['Joe Postdoc'] = 20000\n\n# iterating over key-value pairs:\nfor (person, worth) in netWorth.items():\n if worth < 1000000:\n print('haha ' + person + ' is not a millionaire')\n\n# testing dict membership\nif 'Tom Cruise' in netWorth:\n print('show me the money!')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "age" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26, + "pi": 3.142 + }, + "heap": {}, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes" + }, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes" + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "age": 26, + "pi": 3.142, + "s": "Rutherford Birchard Hayes", + "firstName": "Rutherford" + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George" + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "John", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "John", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Paul", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Paul", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "George", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "George", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 27, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ] + }, + "line": 30, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ] + }, + "line": 33, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 21, + 22, + 28 + ] + }, + "line": 34, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 21, + 22, + 28 + ] + }, + "line": 35, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 34, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 34, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 9, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 9, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 18, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 18, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 19, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 19, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 22, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 22, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 39, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 38, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 42, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 43, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "John", + "Paul", + "George", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 46, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ] + }, + "line": 47, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "orderedUniqueAges": [ + "REF", + 5 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "uniqueAges": [ + "REF", + 4 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ] + }, + "line": 50, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT" + ] + }, + "line": 51, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ] + ] + }, + "line": 52, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ] + ] + }, + "line": 53, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 54, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Donald Trump", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 3000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Donald Trump", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 3000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Bill Gates", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 58000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Bill Gates", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 58000000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 59, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Joe Postdoc", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 20000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 58, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 57, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 62, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "s2": "Rutherford Birchard Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "lastName": "Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 63, + "event": "step_line" + }, + { + "ordered_globals": [ + "age", + "pi", + "s", + "tokens", + "firstName", + "middleName", + "lastName", + "s2", + "beatles", + "b", + "ages", + "uniqueAges", + "thisAge", + "orderedUniqueAges", + "netWorth", + "person", + "worth" + ], + "stdout": "yes!!!\nHello John\nHello Paul\nHello George\nHello Ringo\n34\n9\n18\n19\n22\n28\nThere is an 18-year-old present!\nhaha Joe Postdoc is not a millionaire\nshow me the money!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "netWorth": [ + "REF", + 6 + ], + "beatles": [ + "REF", + 2 + ], + "firstName": "Rutherford", + "uniqueAges": [ + "REF", + 4 + ], + "middleName": "Birchard", + "lastName": "Hayes", + "age": 26, + "orderedUniqueAges": [ + "REF", + 5 + ], + "ages": [ + "REF", + 3 + ], + "tokens": [ + "REF", + 1 + ], + "person": "Tom Cruise", + "s": "Rutherford Birchard Hayes", + "b": "Ringo", + "s2": "Rutherford Birchard Hayes", + "thisAge": 28, + "pi": 3.142, + "worth": 40000000 + }, + "heap": { + "1": [ + "LIST", + "Rutherford", + "Birchard", + "Hayes" + ], + "2": [ + "LIST", + "George", + "John", + "Paul", + "Ringo" + ], + "3": [ + "TUPLE", + 18, + 21, + 28, + 21, + 22, + 18, + 19, + 34, + 9 + ], + "4": [ + "SET", + 34, + 9, + 18, + 19, + 22, + 28 + ], + "5": [ + "LIST", + 9, + 18, + 19, + 22, + 28, + 34 + ], + "6": [ + "DICT", + [ + "Donald Trump", + 3000000000 + ], + [ + "Bill Gates", + 58000000000 + ], + [ + "Joe Postdoc", + 20000 + ], + [ + "Tom Cruise", + 40000000 + ] + ] + }, + "line": 63, + "event": "return" + } + ] +} diff --git a/example-code/py_tutorial.txt b/v3/example-code/py_tutorial.txt similarity index 81% rename from example-code/py_tutorial.txt rename to v3/example-code/py_tutorial.txt index 5f1a230d1..e51ab9599 100644 --- a/example-code/py_tutorial.txt +++ b/v3/example-code/py_tutorial.txt @@ -14,9 +14,9 @@ s2 = firstName + ' ' + middleName + ' ' + lastName # 'if' statement - indentation matters! if (s == s2): - print 'yes!!!' + print('yes!!!') else: - print 'nooooooo' + print('nooooooo') # list (mutable sequence) beatles = ['John', 'Paul', 'George'] @@ -24,7 +24,7 @@ beatles.append('Ringo') # 'for' loop - indentation matters! for b in beatles: - print 'Hello', b + print('Hello ' + b) # tuple (immutable sequence) ages = (18, 21, 28, 21, 22, 18, 19, 34, 9) @@ -36,11 +36,11 @@ uniqueAges.remove(21) # no guaranteed order when iterating over a set for thisAge in uniqueAges: - print thisAge + print(thisAge) # testing set membership if 18 in uniqueAges: - print 'There is an 18-year-old present!' + print('There is an 18-year-old present!') # sorting beatles.sort() # in-place @@ -54,10 +54,10 @@ netWorth['Tom Cruise'] = 40000000 netWorth['Joe Postdoc'] = 20000 # iterating over key-value pairs: -for (person, worth) in netWorth.iteritems(): +for (person, worth) in netWorth.items(): if worth < 1000000: - print 'haha', person, 'is not a millionaire' + print('haha ' + person + ' is not a millionaire') # testing dict membership if 'Tom Cruise' in netWorth: - print 'show me the money!' + print('show me the money!') diff --git a/v3/example-code/raw_input.golden b/v3/example-code/raw_input.golden new file mode 100644 index 000000000..613736478 --- /dev/null +++ b/v3/example-code/raw_input.golden @@ -0,0 +1,33 @@ +{ + "code": "prefix = \"Hello \"\n\nn1 = raw_input(\"Enter your name\")\n\nn2 = raw_input(\"Enter another name\")\n\nres = prefix + n1 + \" and \" + n2\nprint(res)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "prompt": "Enter your name", + "event": "raw_input" + } + ] +} diff --git a/v3/example-code/raw_input.golden_py3 b/v3/example-code/raw_input.golden_py3 new file mode 100644 index 000000000..16dd1a0e6 --- /dev/null +++ b/v3/example-code/raw_input.golden_py3 @@ -0,0 +1,44 @@ +{ + "code": "prefix = \"Hello \"\n\nn1 = raw_input(\"Enter your name\")\n\nn2 = raw_input(\"Enter another name\")\n\nres = prefix + n1 + \" and \" + n2\nprint(res)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "exception_msg": "NameError: name 'raw_input' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 3, + "event": "exception" + } + ] +} diff --git a/v3/example-code/raw_input.txt b/v3/example-code/raw_input.txt new file mode 100644 index 000000000..f585d9b1c --- /dev/null +++ b/v3/example-code/raw_input.txt @@ -0,0 +1,8 @@ +prefix = "Hello " + +n1 = raw_input("Enter your name") + +n2 = raw_input("Enter another name") + +res = prefix + n1 + " and " + n2 +print(res) diff --git a/v3/example-code/raw_input_py3.golden b/v3/example-code/raw_input_py3.golden new file mode 100644 index 000000000..6cf9c2f64 --- /dev/null +++ b/v3/example-code/raw_input_py3.golden @@ -0,0 +1,44 @@ +{ + "code": "# In Python 3, raw_input is called input\nprefix = \"Hello \"\n\nn1 = input(\"Enter your name\")\n\nn2 = input(\"Enter another name\")\n\nres = prefix + n1 + \" and \" + n2\nprint(res)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "exception_msg": "NameError: name 'input' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 4, + "event": "exception" + } + ] +} diff --git a/v3/example-code/raw_input_py3.golden_py3 b/v3/example-code/raw_input_py3.golden_py3 new file mode 100644 index 000000000..7d064d6d0 --- /dev/null +++ b/v3/example-code/raw_input_py3.golden_py3 @@ -0,0 +1,33 @@ +{ + "code": "# In Python 3, raw_input is called input\nprefix = \"Hello \"\n\nn1 = input(\"Enter your name\")\n\nn2 = input(\"Enter another name\")\n\nres = prefix + n1 + \" and \" + n2\nprint(res)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "prefix" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "prefix": "Hello " + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "prompt": "Enter your name", + "event": "raw_input" + } + ] +} diff --git a/v3/example-code/raw_input_py3.txt b/v3/example-code/raw_input_py3.txt new file mode 100644 index 000000000..d71c4992f --- /dev/null +++ b/v3/example-code/raw_input_py3.txt @@ -0,0 +1,9 @@ +# In Python 3, raw_input is called input +prefix = "Hello " + +n1 = input("Enter your name") + +n2 = input("Enter another name") + +res = prefix + n1 + " and " + n2 +print(res) diff --git a/v3/example-code/sqrt.golden b/v3/example-code/sqrt.golden new file mode 100644 index 000000000..67a8e85cf --- /dev/null +++ b/v3/example-code/sqrt.golden @@ -0,0 +1,9331 @@ +{ + "code": "# Calculating square roots by Newton's method, inspired by SICP\n# http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html#%_sec_1.1.7\n\ndef sqrt(x):\n def average(a, b):\n return (a + b) / 2.0\n\n def is_good_enough(guess):\n return (abs((guess * guess) - x) < 0.001)\n\n def improve(guess):\n return average(guess, x / guess)\n\n def sqrt_iter(guess):\n if is_good_enough(guess):\n return guess\n else:\n return sqrt_iter(improve(guess))\n\n return sqrt_iter(1.0)\n\n\nans = sqrt(9)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ], + "is_good_enough": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "is_good_enough" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ], + "is_good_enough": [ + "REF", + 3 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": false, + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": false, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "__return__": 3.400, + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 3.400, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": false, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "__return__": 3.023, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 3.023, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": false, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "__return__": 3.000, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "__return__": true, + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3.000, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3.000, + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "__return__": 3.000, + "x": 9, + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 20, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt", + "ans" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "__return__": 3.000, + "x": 9, + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p_z", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ], + "ans": 3.000 + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 23, + "event": "return" + } + ] +} diff --git a/v3/example-code/sqrt.golden_py3 b/v3/example-code/sqrt.golden_py3 new file mode 100644 index 000000000..67a8e85cf --- /dev/null +++ b/v3/example-code/sqrt.golden_py3 @@ -0,0 +1,9331 @@ +{ + "code": "# Calculating square roots by Newton's method, inspired by SICP\n# http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html#%_sec_1.1.7\n\ndef sqrt(x):\n def average(a, b):\n return (a + b) / 2.0\n\n def is_good_enough(guess):\n return (abs((guess * guess) - x) < 0.001)\n\n def improve(guess):\n return average(guess, x / guess)\n\n def sqrt_iter(guess):\n if is_good_enough(guess):\n return guess\n else:\n return sqrt_iter(improve(guess))\n\n return sqrt_iter(1.0)\n\n\nans = sqrt(9)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ], + "is_good_enough": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "is_good_enough" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "average": [ + "REF", + 2 + ], + "is_good_enough": [ + "REF", + 3 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": false, + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f3", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "1.0" + ], + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": [ + "SPECIAL_FLOAT", + "9.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f5", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "SPECIAL_FLOAT", + "5.0" + ], + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f4", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": false, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f7", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "a": [ + "SPECIAL_FLOAT", + "5.0" + ], + "__return__": 3.400, + "b": 1.800 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f9", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 3.400, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f8", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": false, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f11", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "a": 3.400, + "__return__": 3.023, + "b": 2.647 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f13", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 3.023, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f12", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": false, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f15", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 11, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "average", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "a": 3.023, + "__return__": 3.000, + "b": 2.977 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "average", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "average_f17", + "ordered_varnames": [ + "a", + "b", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "improve", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "improve", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "improve_f16", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 12, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "is_good_enough", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "__return__": true, + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "is_good_enough", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "is_good_enough_f19", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "guess": 3.023 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.000 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f18", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "guess": 3.400 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.023 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f14", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 3.000, + "guess": 3.400 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f10", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3.000, + "guess": [ + "SPECIAL_FLOAT", + "5.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f6", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt_iter", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 9, + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3.000, + "guess": [ + "SPECIAL_FLOAT", + "1.0" + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sqrt_iter", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "sqrt_iter_f2", + "ordered_varnames": [ + "guess", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt" + ], + "stdout": "", + "func_name": "sqrt", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "__return__": 3.000, + "x": 9, + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 20, + "event": "return" + }, + { + "ordered_globals": [ + "sqrt", + "ans" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "sqrt_iter": [ + "REF", + 5 + ], + "is_good_enough": [ + "REF", + 3 + ], + "__return__": 3.000, + "x": 9, + "average": [ + "REF", + 2 + ], + "improve": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sqrt", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sqrt_f1_p_z", + "ordered_varnames": [ + "x", + "average", + "improve", + "is_good_enough", + "sqrt_iter", + "__return__" + ] + } + ], + "globals": { + "sqrt": [ + "REF", + 1 + ], + "ans": 3.000 + }, + "heap": { + "1": [ + "FUNCTION", + "sqrt(x)", + null + ], + "2": [ + "FUNCTION", + "average(a, b)", + 1 + ], + "3": [ + "FUNCTION", + "is_good_enough(guess)", + 1 + ], + "4": [ + "FUNCTION", + "improve(guess)", + 1 + ], + "5": [ + "FUNCTION", + "sqrt_iter(guess)", + 1 + ] + }, + "line": 23, + "event": "return" + } + ] +} diff --git a/example-code/sqrt.txt b/v3/example-code/sqrt.txt similarity index 100% rename from example-code/sqrt.txt rename to v3/example-code/sqrt.txt diff --git a/v3/example-code/strtok.golden b/v3/example-code/strtok.golden new file mode 100644 index 000000000..3c5031e8f --- /dev/null +++ b/v3/example-code/strtok.golden @@ -0,0 +1,258 @@ +{ + "code": "input = 'John,Doe,1984,4,1,male'\n\ntokens = input.split(',')\nfirstName = tokens[0]\nlastName = tokens[1]\nbirthdate = (int(tokens[2]), int(tokens[3]), int(tokens[4]))\nisMale = (tokens[5] == 'male')\n\nprint('Hi ' + firstName + ' ' + lastName)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": "John,Doe,1984,4,1,male" + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male", + "firstName": "John" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "lastName": "Doe", + "firstName": "John", + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "lastName": "Doe", + "firstName": "John", + "birthdate": [ + "REF", + 2 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate", + "isMale" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "isMale": true, + "firstName": "John", + "lastName": "Doe", + "birthdate": [ + "REF", + 2 + ], + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate", + "isMale" + ], + "stdout": "Hi John Doe\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "isMale": true, + "firstName": "John", + "lastName": "Doe", + "birthdate": [ + "REF", + 2 + ], + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/example-code/strtok.golden_py3 b/v3/example-code/strtok.golden_py3 new file mode 100644 index 000000000..3c5031e8f --- /dev/null +++ b/v3/example-code/strtok.golden_py3 @@ -0,0 +1,258 @@ +{ + "code": "input = 'John,Doe,1984,4,1,male'\n\ntokens = input.split(',')\nfirstName = tokens[0]\nlastName = tokens[1]\nbirthdate = (int(tokens[2]), int(tokens[3]), int(tokens[4]))\nisMale = (tokens[5] == 'male')\n\nprint('Hi ' + firstName + ' ' + lastName)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "input" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "input": "John,Doe,1984,4,1,male" + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male", + "firstName": "John" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "lastName": "Doe", + "firstName": "John", + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "tokens": [ + "REF", + 1 + ], + "lastName": "Doe", + "firstName": "John", + "birthdate": [ + "REF", + 2 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate", + "isMale" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "isMale": true, + "firstName": "John", + "lastName": "Doe", + "birthdate": [ + "REF", + 2 + ], + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "input", + "tokens", + "firstName", + "lastName", + "birthdate", + "isMale" + ], + "stdout": "Hi John Doe\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "isMale": true, + "firstName": "John", + "lastName": "Doe", + "birthdate": [ + "REF", + 2 + ], + "tokens": [ + "REF", + 1 + ], + "input": "John,Doe,1984,4,1,male" + }, + "heap": { + "1": [ + "LIST", + "John", + "Doe", + "1984", + "4", + "1", + "male" + ], + "2": [ + "TUPLE", + 1984, + 4, + 1 + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/example-code/strtok.txt b/v3/example-code/strtok.txt similarity index 82% rename from example-code/strtok.txt rename to v3/example-code/strtok.txt index 96e8100d5..52e08f112 100644 --- a/example-code/strtok.txt +++ b/v3/example-code/strtok.txt @@ -6,4 +6,4 @@ lastName = tokens[1] birthdate = (int(tokens[2]), int(tokens[3]), int(tokens[4])) isMale = (tokens[5] == 'male') -print 'Hi', firstName, lastName +print('Hi ' + firstName + ' ' + lastName) diff --git a/v3/example-code/sum-cubes.golden b/v3/example-code/sum-cubes.golden new file mode 100644 index 000000000..6eecbbe30 --- /dev/null +++ b/v3/example-code/sum-cubes.golden @@ -0,0 +1,1693 @@ +{ + "code": "def summation(n, term, next):\n total, k = 0, 1\n while k <= n:\n total, k = total + term(k), next(k)\n return total\n\ndef cube(k):\n return pow(k, 3)\n\ndef successor(k):\n return k + 1\n\ndef sum_cubes(n):\n return summation(n, cube, successor)\n\nsum_cubes(3)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "n": 3, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "n": 3, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 1, + "k": 2, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "k": 2, + "n": 3, + "next": [ + "REF", + 3 + ], + "__return__": 1, + "total": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 1, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/sum-cubes.golden_py3 b/v3/example-code/sum-cubes.golden_py3 new file mode 100644 index 000000000..6eecbbe30 --- /dev/null +++ b/v3/example-code/sum-cubes.golden_py3 @@ -0,0 +1,1693 @@ +{ + "code": "def summation(n, term, next):\n total, k = 0, 1\n while k <= n:\n total, k = total + term(k), next(k)\n return total\n\ndef cube(k):\n return pow(k, 3)\n\ndef successor(k):\n return k + 1\n\ndef sum_cubes(n):\n return summation(n, cube, successor)\n\nsum_cubes(3)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "n": 3, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "n": 3, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "cube", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "cube", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "cube_f3", + "ordered_varnames": [ + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "successor", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 0, + "k": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "successor", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "successor_f4", + "ordered_varnames": [ + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3, + "term": [ + "REF", + 2 + ], + "total": 1, + "k": 2, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "term": [ + "REF", + 2 + ], + "k": 2, + "n": 3, + "next": [ + "REF", + 3 + ], + "__return__": 1, + "total": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "n", + "term", + "next", + "total", + "k", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "sum_cubes", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 1, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sum_cubes", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sum_cubes_f1", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "cube", + "successor", + "sum_cubes" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "cube": [ + "REF", + 2 + ], + "sum_cubes": [ + "REF", + 4 + ], + "successor": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(n, term, next)", + null + ], + "2": [ + "FUNCTION", + "cube(k)", + null + ], + "3": [ + "FUNCTION", + "successor(k)", + null + ], + "4": [ + "FUNCTION", + "sum_cubes(n)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/sum-cubes.txt b/v3/example-code/sum-cubes.txt new file mode 100644 index 000000000..7eff416f7 --- /dev/null +++ b/v3/example-code/sum-cubes.txt @@ -0,0 +1,16 @@ +def summation(n, term, next): + total, k = 0, 1 + while k <= n: + total, k = total + term(k), next(k) + return total + +def cube(k): + return pow(k, 3) + +def successor(k): + return k + 1 + +def sum_cubes(n): + return summation(n, cube, successor) + +sum_cubes(3) diff --git a/v3/example-code/sum-list.golden b/v3/example-code/sum-list.golden new file mode 100644 index 000000000..c121417d9 --- /dev/null +++ b/v3/example-code/sum-list.golden @@ -0,0 +1,3466 @@ +{ + "code": "myList = (1, (2, (3, (4, (5, None)))))\n\ndef sumList(node, subtotal):\n if not node:\n return subtotal\n else:\n return sumList(node[1], subtotal + node[0])\n\ntotal = sumList(myList, 0)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "__return__": 15, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "__return__": 15, + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "__return__": 15, + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "__return__": 15, + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "__return__": 15, + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "__return__": 15, + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList", + "total" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "total": 15, + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/example-code/sum-list.golden_py3 b/v3/example-code/sum-list.golden_py3 new file mode 100644 index 000000000..c121417d9 --- /dev/null +++ b/v3/example-code/sum-list.golden_py3 @@ -0,0 +1,3466 @@ +{ + "code": "myList = (1, (2, (3, (4, (5, None)))))\n\ndef sumList(node, subtotal):\n if not node:\n return subtotal\n else:\n return sumList(node[1], subtotal + node[0])\n\ntotal = sumList(myList, 0)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "subtotal": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "node": null, + "__return__": 15, + "subtotal": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f6", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "subtotal": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "node": [ + "REF", + 5 + ], + "__return__": 15, + "subtotal": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f5", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "subtotal": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "node": [ + "REF", + 4 + ], + "__return__": 15, + "subtotal": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f4", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "subtotal": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "node": [ + "REF", + 3 + ], + "__return__": 15, + "subtotal": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "subtotal": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "node": [ + "REF", + 2 + ], + "__return__": 15, + "subtotal": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList" + ], + "stdout": "", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "node": [ + "REF", + 1 + ], + "__return__": 15, + "subtotal": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "node", + "subtotal", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "myList", + "sumList", + "total" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "total": 15, + "myList": [ + "REF", + 1 + ], + "sumList": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 2, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 3, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 4, + [ + "REF", + 5 + ] + ], + "5": [ + "TUPLE", + 5, + null + ], + "6": [ + "FUNCTION", + "sumList(node, subtotal)", + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/example-code/sum-list.txt b/v3/example-code/sum-list.txt new file mode 100644 index 000000000..9945a6a6b --- /dev/null +++ b/v3/example-code/sum-list.txt @@ -0,0 +1,9 @@ +myList = (1, (2, (3, (4, (5, None))))) + +def sumList(node, subtotal): + if not node: + return subtotal + else: + return sumList(node[1], subtotal + node[0]) + +total = sumList(myList, 0) diff --git a/v3/example-code/sum.golden b/v3/example-code/sum.golden new file mode 100644 index 000000000..0186b5dff --- /dev/null +++ b/v3/example-code/sum.golden @@ -0,0 +1,10163 @@ +{ + "code": "# Higher-order functions\n# Adapted from MIT 6.01 course notes (Section A.2.2)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\ndef summation(low, high, f, next):\n s = 0\n x = low\n while x <= high:\n s = s + f(x)\n x = next(x)\n return s\n\ndef sumsquares(low, high):\n return summation(low, high, lambda x: x**2, lambda x: x+1)\n\nprint(sumsquares(1, 10))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "s": 0, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 4, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 9, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 4, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 16, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 25, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 6, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": 36, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 7, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": 49, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 8, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "__return__": 64, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "__return__": 9, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "__return__": 81, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "__return__": 10, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "__return__": 100, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "__return__": 11, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "__return__": 385, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "__return__": 385, + "low": 1 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "385\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "__return__": 385, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p_z", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/sum.golden_py3 b/v3/example-code/sum.golden_py3 new file mode 100644 index 000000000..0186b5dff --- /dev/null +++ b/v3/example-code/sum.golden_py3 @@ -0,0 +1,10163 @@ +{ + "code": "# Higher-order functions\n# Adapted from MIT 6.01 course notes (Section A.2.2)\n# http://mit.edu/6.01/mercurial/spring10/www/handouts/readings.pdf\n\ndef summation(low, high, f, next):\n s = 0\n x = low\n while x <= high:\n s = s + f(x)\n x = next(x)\n return s\n\ndef sumsquares(low, high):\n return summation(low, high, lambda x: x**2, lambda x: x+1)\n\nprint(sumsquares(1, 10))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 10, + "s": 0, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 4, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 9, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 4, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 16, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 25, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 6, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": 36, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f13", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 6 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": 7, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f14", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 91, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": 49, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f15", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 7 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": 8, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f16", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 140, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 17, + "encoded_locals": { + "__return__": 64, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f17", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 8 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 18, + "encoded_locals": { + "__return__": 9, + "x": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f18", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 204, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 19, + "encoded_locals": { + "__return__": 81, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f19", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 9 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 20, + "encoded_locals": { + "__return__": 10, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f20", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 285, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 21, + "encoded_locals": { + "__return__": 100, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f21", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 22, + "encoded_locals": { + "__return__": 11, + "x": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f22", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 10, + "s": 385, + "low": 1, + "__return__": 385, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "__return__": 385, + "low": 1 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "385\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 10, + "__return__": 385, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p_z", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/example-code/sum.txt b/v3/example-code/sum.txt similarity index 93% rename from example-code/sum.txt rename to v3/example-code/sum.txt index 99a8ace18..3fe651044 100644 --- a/example-code/sum.txt +++ b/v3/example-code/sum.txt @@ -13,4 +13,4 @@ def summation(low, high, f, next): def sumsquares(low, high): return summation(low, high, lambda x: x**2, lambda x: x+1) -print sumsquares(1, 10) +print(sumsquares(1, 10)) diff --git a/v3/example-code/towers_of_hanoi.golden b/v3/example-code/towers_of_hanoi.golden new file mode 100644 index 000000000..0b98e6d8c --- /dev/null +++ b/v3/example-code/towers_of_hanoi.golden @@ -0,0 +1,10996 @@ +{ + "code": "# move a stack of n disks from stack a to stack b,\n# using tmp as a temporary stack\ndef TowerOfHanoi(n, a, b, tmp):\n if n == 1:\n b.append(a.pop())\n else:\n TowerOfHanoi(n-1, a, tmp, b)\n b.append(a.pop())\n TowerOfHanoi(n-1, tmp, b, a)\n \nstack1 = [4,3,2,1]\nstack2 = []\nstack3 = []\n \n# transfer stack1 to stack3 using Tower of Hanoi rules\nTowerOfHanoi(len(stack1), stack1, stack3, stack2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "TowerOfHanoi": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/towers_of_hanoi.golden_py3 b/v3/example-code/towers_of_hanoi.golden_py3 new file mode 100644 index 000000000..0b98e6d8c --- /dev/null +++ b/v3/example-code/towers_of_hanoi.golden_py3 @@ -0,0 +1,10996 @@ +{ + "code": "# move a stack of n disks from stack a to stack b,\n# using tmp as a temporary stack\ndef TowerOfHanoi(n, a, b, tmp):\n if n == 1:\n b.append(a.pop())\n else:\n TowerOfHanoi(n-1, a, tmp, b)\n b.append(a.pop())\n TowerOfHanoi(n-1, tmp, b, a)\n \nstack1 = [4,3,2,1]\nstack2 = []\nstack3 = []\n \n# transfer stack1 to stack3 using Tower of Hanoi rules\nTowerOfHanoi(len(stack1), stack1, stack3, stack2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "TowerOfHanoi": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f4", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3, + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f5", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f3", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 3 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f7", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4, + 1 + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f8", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f6", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f2", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 4 + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2, + 1 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f11", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 3, + 2 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f12", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f10", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST", + 3 + ], + "4": [ + "LIST", + 4 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2, + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "tmp": [ + "REF", + 4 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 3 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f14", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST", + 2 + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST", + 1 + ], + "4": [ + "LIST", + 4, + 3, + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f15", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f13", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "tmp": [ + "REF", + 2 + ], + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f9", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "TowerOfHanoi", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "tmp": [ + "REF", + 3 + ], + "a": [ + "REF", + 2 + ], + "__return__": null, + "b": [ + "REF", + 4 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "TowerOfHanoi", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "TowerOfHanoi_f1", + "ordered_varnames": [ + "n", + "a", + "b", + "tmp", + "__return__" + ] + } + ], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "TowerOfHanoi", + "stack1", + "stack2", + "stack3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "stack3": [ + "REF", + 4 + ], + "stack2": [ + "REF", + 3 + ], + "TowerOfHanoi": [ + "REF", + 1 + ], + "stack1": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "TowerOfHanoi(n, a, b, tmp)", + null + ], + "2": [ + "LIST" + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 4, + 3, + 2, + 1 + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/example-code/towers_of_hanoi.txt b/v3/example-code/towers_of_hanoi.txt similarity index 100% rename from example-code/towers_of_hanoi.txt rename to v3/example-code/towers_of_hanoi.txt diff --git a/v3/example-code/varargs.golden b/v3/example-code/varargs.golden new file mode 100644 index 000000000..d12be8967 --- /dev/null +++ b/v3/example-code/varargs.golden @@ -0,0 +1,1015 @@ +{ + "code": "# Demonstrate *args and **kwargs\ndef f1(a, b, *rest):\n pass\n\nf1(1, 2)\nf1(1, 2, 3, 4, 5, 6, 7)\n\ndef f2(a, b, **kwrest):\n pass\n\nf2(1, 2, name='Bob', age=38)\n\ndef f3(a, b, *rest, **kwrest):\n pass\n\nf3(1, 2, 3, 4, name='Bob', age=38)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/varargs.golden_py3 b/v3/example-code/varargs.golden_py3 new file mode 100644 index 000000000..d12be8967 --- /dev/null +++ b/v3/example-code/varargs.golden_py3 @@ -0,0 +1,1015 @@ +{ + "code": "# Demonstrate *args and **kwargs\ndef f1(a, b, *rest):\n pass\n\nf1(1, 2)\nf1(1, 2, 3, 4, 5, 6, 7)\n\ndef f2(a, b, **kwrest):\n pass\n\nf2(1, 2, name='Bob', age=38)\n\ndef f3(a, b, *rest, **kwrest):\n pass\n\nf3(1, 2, 3, 4, name='Bob', age=38)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f1", + "ordered_varnames": [ + "a", + "b", + "rest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "2": [ + "TUPLE" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "f1", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f1_f2", + "ordered_varnames": [ + "a", + "b", + "rest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "3": [ + "TUPLE", + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "f2", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "kwrest": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f2", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f2_f3", + "ordered_varnames": [ + "a", + "b", + "kwrest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "5": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f1", + "f2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "f3", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "a": 1, + "__return__": null, + "b": 2, + "rest": [ + "REF", + 8 + ], + "kwrest": [ + "REF", + 7 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f3", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f3_f4", + "ordered_varnames": [ + "a", + "b", + "rest", + "kwrest", + "__return__" + ] + } + ], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "8": [ + "TUPLE", + 3, + 4 + ], + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ], + "7": [ + "DICT", + [ + "age", + 38 + ], + [ + "name", + "Bob" + ] + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "f1", + "f2", + "f3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f1": [ + "REF", + 1 + ], + "f2": [ + "REF", + 4 + ], + "f3": [ + "REF", + 6 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f1(a, b, *rest)", + null + ], + "4": [ + "FUNCTION", + "f2(a, b, **kwrest)", + null + ], + "6": [ + "FUNCTION", + "f3(a, b, *rest, **kwrest)", + null + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/example-code/varargs.txt b/v3/example-code/varargs.txt new file mode 100644 index 000000000..97da39bb9 --- /dev/null +++ b/v3/example-code/varargs.txt @@ -0,0 +1,16 @@ +# Demonstrate *args and **kwargs +def f1(a, b, *rest): + pass + +f1(1, 2) +f1(1, 2, 3, 4, 5, 6, 7) + +def f2(a, b, **kwrest): + pass + +f2(1, 2, name='Bob', age=38) + +def f3(a, b, *rest, **kwrest): + pass + +f3(1, 2, 3, 4, name='Bob', age=38) diff --git a/v3/example-code/wentworth_gcd.golden b/v3/example-code/wentworth_gcd.golden new file mode 100644 index 000000000..cc0273cb0 --- /dev/null +++ b/v3/example-code/wentworth_gcd.golden @@ -0,0 +1,3798 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\ndef gcd(x, y, depth=1):\n '''\n Find the greatest common divisor of x, y\n Pre: x >= y, y >= 0, both x and y are int\n '''\n result = x # set provisional return value\n if y != 0:\n indent = \"**\" * depth\n print((\"%s About to recursively call gcd(%d, %d)\" % (indent, y, x%y)))\n result = gcd(y, x % y, depth+1)\n print((\"%s result is %d\" % (indent, result)))\n return result\n\ndef main():\n m = 77\n n = 28\n print((\"Finding gcd(%d, %d)\" % (m,n)))\n g = gcd(m, n)\n print(('Greatest common divisor of %d, %d = %d'\n % (m, n, g)))\n\nmain()\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7, + "__return__": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "indent": "******", + "__return__": 7, + "depth": 3, + "result": 7, + "y": 7, + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "indent": "****", + "__return__": 7, + "depth": 2, + "result": 7, + "y": 21, + "x": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "indent": "**", + "__return__": 7, + "depth": 1, + "result": 7, + "y": 28, + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\nGreatest common divisor of 77, 28 = 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 23, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\nGreatest common divisor of 77, 28 = 7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/v3/example-code/wentworth_gcd.golden_py3 b/v3/example-code/wentworth_gcd.golden_py3 new file mode 100644 index 000000000..cc0273cb0 --- /dev/null +++ b/v3/example-code/wentworth_gcd.golden_py3 @@ -0,0 +1,3798 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\ndef gcd(x, y, depth=1):\n '''\n Find the greatest common divisor of x, y\n Pre: x >= y, y >= 0, both x and y are int\n '''\n result = x # set provisional return value\n if y != 0:\n indent = \"**\" * depth\n print((\"%s About to recursively call gcd(%d, %d)\" % (indent, y, x%y)))\n result = gcd(y, x % y, depth+1)\n print((\"%s result is %d\" % (indent, result)))\n return result\n\ndef main():\n m = 77\n n = 28\n print((\"Finding gcd(%d, %d)\" % (m,n)))\n g = gcd(m, n)\n print(('Greatest common divisor of %d, %d = %d'\n % (m, n, g)))\n\nmain()\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 25, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 17, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 21 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "y": 0, + "x": 7, + "depth": 4, + "result": 7, + "__return__": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f5", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "y": 7, + "x": 21, + "depth": 3, + "indent": "******", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "indent": "******", + "__return__": 7, + "depth": 3, + "result": 7, + "y": 7, + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f4", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "y": 21, + "x": 28, + "depth": 2, + "indent": "****", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 77 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "indent": "****", + "__return__": 7, + "depth": 2, + "result": 7, + "y": 21, + "x": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f3", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 28, + "x": 77, + "depth": 1, + "indent": "**", + "result": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "gcd", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "n": 28 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "indent": "**", + "__return__": 7, + "depth": 1, + "result": 7, + "y": 28, + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gcd", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gcd_f2", + "ordered_varnames": [ + "x", + "y", + "depth", + "result", + "indent", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\nGreatest common divisor of 77, 28 = 7\n", + "func_name": "main", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "m": 77, + "g": 7, + "n": 28 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "main", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "main_f1", + "ordered_varnames": [ + "m", + "n", + "g", + "__return__" + ] + } + ], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 23, + "event": "return" + }, + { + "ordered_globals": [ + "gcd", + "main" + ], + "stdout": "Finding gcd(77, 28)\n** About to recursively call gcd(28, 21)\n**** About to recursively call gcd(21, 7)\n****** About to recursively call gcd(7, 0)\n****** result is 7\n**** result is 7\n** result is 7\nGreatest common divisor of 77, 28 = 7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "main": [ + "REF", + 2 + ], + "gcd": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gcd(x, y, depth)", + null + ], + "2": [ + "FUNCTION", + "main()", + null + ] + }, + "line": 25, + "event": "return" + } + ] +} diff --git a/example-code/wentworth_gcd.txt b/v3/example-code/wentworth_gcd.txt similarity index 64% rename from example-code/wentworth_gcd.txt rename to v3/example-code/wentworth_gcd.txt index b9d544fbd..683beffc2 100644 --- a/example-code/wentworth_gcd.txt +++ b/v3/example-code/wentworth_gcd.txt @@ -9,18 +9,18 @@ def gcd(x, y, depth=1): result = x # set provisional return value if y != 0: indent = "**" * depth - print("%s About to recursively call gcd(%d, %d)" % (indent, y, x%y)) + print(("%s About to recursively call gcd(%d, %d)" % (indent, y, x%y))) result = gcd(y, x % y, depth+1) - print("%s result is %d" % (indent, result)) + print(("%s result is %d" % (indent, result))) return result def main(): m = 77 n = 28 - print("Finding gcd(%d, %d)" % (m,n)) + print(("Finding gcd(%d, %d)" % (m,n))) g = gcd(m, n) - print('Greatest common divisor of %d, %d = %d' - % (m, n, g)) + print(('Greatest common divisor of %d, %d = %d' + % (m, n, g))) main() diff --git a/v3/example-code/wentworth_sumList.golden b/v3/example-code/wentworth_sumList.golden new file mode 100644 index 000000000..8809705d3 --- /dev/null +++ b/v3/example-code/wentworth_sumList.golden @@ -0,0 +1,4520 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\ndef sumList(xs):\n '''\n Sum a list that can contain nested lists.\n Precondition: All leaf elements are numbers.\n '''\n sum = 0\n for e in xs:\n if type(e) is list:\n print((\"Calling sumList(%s) recursively\" % e))\n v = sumList(e)\n print((\"sumList(%s) returned %s\" % (e, v)))\n sum += v\n else:\n sum += e\n return sum\n\n\ntestData = [10, [20, 30, [40], 50], 60]\nprint((\"Calling sumList(%s)\" % testData))\nresult = sumList(testData)\nprint((\"Final sum of all numbers in initial list is %s\" % result))\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 40, + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 140, + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 210, + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData", + "result" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "result": 210, + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData", + "result" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\nFinal sum of all numbers in initial list is 210\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "result": 210, + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 24, + "event": "return" + } + ] +} diff --git a/v3/example-code/wentworth_sumList.golden_py3 b/v3/example-code/wentworth_sumList.golden_py3 new file mode 100644 index 000000000..8809705d3 --- /dev/null +++ b/v3/example-code/wentworth_sumList.golden_py3 @@ -0,0 +1,4520 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\ndef sumList(xs):\n '''\n Sum a list that can contain nested lists.\n Precondition: All leaf elements are numbers.\n '''\n sum = 0\n for e in xs:\n if type(e) is list:\n print((\"Calling sumList(%s) recursively\" % e))\n v = sumList(e)\n print((\"sumList(%s) returned %s\" % (e, v)))\n sum += v\n else:\n sum += e\n return sum\n\n\ntestData = [10, [20, 30, [40], 50], 60]\nprint((\"Calling sumList(%s)\" % testData))\nresult = sumList(testData)\nprint((\"Final sum of all numbers in initial list is %s\" % result))\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 0, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 0, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 20 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 20, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": 30 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 0, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 40, + "xs": [ + "REF", + 4 + ], + "sum": 40, + "e": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f3", + "ordered_varnames": [ + "xs", + "sum", + "e", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 50, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": [ + "REF", + 4 + ], + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 90, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 140, + "xs": [ + "REF", + 3 + ], + "sum": 140, + "e": 50, + "v": 40 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f2", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 10, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": [ + "REF", + 3 + ], + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 150, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "sumList", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 210, + "xs": [ + "REF", + 2 + ], + "sum": 210, + "e": 60, + "v": 140 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumList", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumList_f1", + "ordered_varnames": [ + "xs", + "sum", + "e", + "v", + "__return__" + ] + } + ], + "globals": { + "testData": [ + "REF", + 2 + ], + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 18, + "event": "return" + }, + { + "ordered_globals": [ + "sumList", + "testData", + "result" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "result": 210, + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "sumList", + "testData", + "result" + ], + "stdout": "Calling sumList([10, [20, 30, [40], 50], 60])\nCalling sumList([20, 30, [40], 50]) recursively\nCalling sumList([40]) recursively\nsumList([40]) returned 40\nsumList([20, 30, [40], 50]) returned 140\nFinal sum of all numbers in initial list is 210\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "testData": [ + "REF", + 2 + ], + "result": 210, + "sumList": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "sumList(xs)", + null + ], + "2": [ + "LIST", + 10, + [ + "REF", + 3 + ], + 60 + ], + "3": [ + "LIST", + 20, + 30, + [ + "REF", + 4 + ], + 50 + ], + "4": [ + "LIST", + 40 + ] + }, + "line": 24, + "event": "return" + } + ] +} diff --git a/example-code/wentworth_sumList.txt b/v3/example-code/wentworth_sumList.txt similarity index 66% rename from example-code/wentworth_sumList.txt rename to v3/example-code/wentworth_sumList.txt index e286c2d69..30727f674 100644 --- a/example-code/wentworth_sumList.txt +++ b/v3/example-code/wentworth_sumList.txt @@ -9,9 +9,9 @@ def sumList(xs): sum = 0 for e in xs: if type(e) is list: - print("Calling sumList(%s) recursively" % e) + print(("Calling sumList(%s) recursively" % e)) v = sumList(e) - print("sumList(%s) returned %s" % (e, v)) + print(("sumList(%s) returned %s" % (e, v))) sum += v else: sum += e @@ -19,7 +19,7 @@ def sumList(xs): testData = [10, [20, 30, [40], 50], 60] -print("Calling sumList(%s)" % testData) +print(("Calling sumList(%s)" % testData)) result = sumList(testData) -print("Final sum of all numbers in initial list is %s" % result) +print(("Final sum of all numbers in initial list is %s" % result)) diff --git a/v3/example-code/wentworth_try_finally.golden b/v3/example-code/wentworth_try_finally.golden new file mode 100644 index 000000000..f305d1d32 --- /dev/null +++ b/v3/example-code/wentworth_try_finally.golden @@ -0,0 +1,2823 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\n# Demonstrate recursion that throws an exception\n# at its base case, and the tracing of try ... finally.\n#\n# How many \"survived!\" messages will be printed???\n\ndef f(n):\n try:\n x = 10 / n\n print(\"x is \" + str(x))\n f(n-1)\n print(\"survived!\")\n finally:\n print(\"Bye from f where n = \" + str(n))\n\nf(4)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": null, + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 10, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "x": 10, + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 5, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "x": 5, + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "x": 3, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\nBye from f where n = 4\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 2, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2\nx is 3\nx is 5\nx is 10\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\nBye from f where n = 4\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 18, + "event": "exception" + } + ] +} diff --git a/v3/example-code/wentworth_try_finally.golden_py3 b/v3/example-code/wentworth_try_finally.golden_py3 new file mode 100644 index 000000000..5b02e3eb7 --- /dev/null +++ b/v3/example-code/wentworth_try_finally.golden_py3 @@ -0,0 +1,2913 @@ +{ + "code": "# Tutorial code from Prof. Peter Wentworth\n# Rhodes University, South Africa (http://www.ru.ac.za/)\n\n# Demonstrate recursion that throws an exception\n# at its base case, and the tracing of try ... finally.\n#\n# How many \"survived!\" messages will be printed???\n\ndef f(n):\n try:\n x = 10 / n\n print(\"x is \" + str(x))\n f(n-1)\n print(\"survived!\")\n finally:\n print(\"Bye from f where n = \" + str(n))\n\nf(4)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 18, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 11, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": null, + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f5", + "ordered_varnames": [ + "n", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "x": [ + "SPECIAL_FLOAT", + "10.0" + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f4", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "x": [ + "SPECIAL_FLOAT", + "5.0" + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3.333, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "x": 3.333, + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f2", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 13, + "event": "exception" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 2.500, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\nBye from f where n = 4\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "x": 2.500, + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "n", + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 16, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "x is 2.5\nx is 3.3333333333333335\nx is 5.0\nx is 10.0\nBye from f where n = 0\nBye from f where n = 1\nBye from f where n = 2\nBye from f where n = 3\nBye from f where n = 4\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(n)", + null + ] + }, + "line": 18, + "event": "exception" + } + ] +} diff --git a/example-code/wentworth_try_finally.txt b/v3/example-code/wentworth_try_finally.txt similarity index 75% rename from example-code/wentworth_try_finally.txt rename to v3/example-code/wentworth_try_finally.txt index daab5e33c..b6617fa56 100644 --- a/example-code/wentworth_try_finally.txt +++ b/v3/example-code/wentworth_try_finally.txt @@ -9,10 +9,10 @@ def f(n): try: x = 10 / n - print "x is", x + print("x is " + str(x)) f(n-1) - print "survived!" + print("survived!") finally: - print "Bye from f where n =", n + print("Bye from f where n = " + str(n)) f(4) diff --git a/v3/favicon.ico b/v3/favicon.ico new file mode 100644 index 000000000..c9efc5844 Binary files /dev/null and b/v3/favicon.ico differ diff --git a/v3/generate_json_trace.py b/v3/generate_json_trace.py new file mode 100644 index 000000000..638d3620e --- /dev/null +++ b/v3/generate_json_trace.py @@ -0,0 +1,48 @@ +# Generates a JSON trace that is compatible with the js/pytutor.js frontend + +import sys, pg_logger, json +from optparse import OptionParser + +# To make regression tests work consistently across platforms, +# standardize display of floats to 3 significant figures +# +# Trick from: +# http://stackoverflow.com/questions/1447287/format-floats-with-standard-json-module +json.encoder.FLOAT_REPR = lambda f: ('%.3f' % f) + +def json_finalizer(input_code, output_trace): + ret = dict(code=input_code, trace=output_trace) + # sort_keys=True leads to printing in DETERMINISTIC order, but might + # screw up some old tests ... however, there is STILL non-determinism + # in Python 3.3 tests, ugh! + json_output = json.dumps(ret, indent=INDENT_LEVEL) + return json_output + +def js_var_finalizer(input_code, output_trace): + global JS_VARNAME + ret = dict(code=input_code, trace=output_trace) + json_output = json.dumps(ret, indent=None) + return "var %s = %s;" % (JS_VARNAME, json_output) + +parser = OptionParser(usage="Generate JSON trace for pytutor") +parser.add_option('-c', '--cumulative', default=False, action='store_true', + help='output cumulative trace.') +parser.add_option('-p', '--heapPrimitives', default=False, action='store_true', + help='render primitives as heap objects.') +parser.add_option('-o', '--compact', default=False, action='store_true', + help='output compact trace.') +parser.add_option('-i', '--input', default=False, action='store', + help='JSON list of strings for simulated raw_input.', dest='raw_input_lst_json') +parser.add_option("--create_jsvar", dest="js_varname", default=None, + help="Create a JavaScript variable out of the trace") + +(options, args) = parser.parse_args() +INDENT_LEVEL = None if options.compact else 2 + +fin = sys.stdin if args[0] == "-" else open(args[0]) + +if options.js_varname: + JS_VARNAME = options.js_varname + print(pg_logger.exec_script_str_local(fin.read(), options.raw_input_lst_json, options.cumulative, options.heapPrimitives, js_var_finalizer)) +else: + print(pg_logger.exec_script_str_local(fin.read(), options.raw_input_lst_json, options.cumulative, options.heapPrimitives, json_finalizer)) diff --git a/v3/graphviz-binary-tree/binary_tree.py.WORKING b/v3/graphviz-binary-tree/binary_tree.py.WORKING new file mode 100644 index 000000000..3a51cf31c --- /dev/null +++ b/v3/graphviz-binary-tree/binary_tree.py.WORKING @@ -0,0 +1,168 @@ +# TODO: how do you set the BACKGROUND COLOR of a GraphViz node ... fill=? + +# TODO: make this work in both Python 2 and 3 + +from collections import defaultdict + +ID = 0 + +class TreeNode: + def __init__(self, dat): + self.data = str(dat) # convert to string for easy display in GraphViz + self.parent = None + self.left = None + self.right = None + + self.__penwidth = 1 # thickness of node border + + # HTML-like RGB hex values - e.g., "#bb0000" + self.__color = None # border color + self.__fill = None # internal node color + + # assign unique IDs in node creation order + global ID + self.id = 'n' + str(ID) + ID += 1 + + def set_border_color(self, col): + self.__color = col + + def set_fill(self, col): + self.__fill = col + + def set_width(self, w): + assert w > 0 + self.__penwidth = w + + def __str__(self): + ret = '%s[label="%s"' % (self.id, self.data) + if self.__penwidth > 1: + ret += ',penwidth=%d' % self.__penwidth + if self.__color: + ret += ',color="%s"' % self.__color + if self.__fill: + ret += ',fill="%s"' % self.__fill + ret += ']' + return ret + + +# render a binary tree of TreeNode objects starting at root in a pretty +# GraphViz format using the balanced tree hack from +# http://www.graphviz.org/content/FaqBalanceTree +def graphviz_render(root): + print 'digraph G{' + + queue = [] # each element is (node, level #) + + # Key: level number + # Value: sorted list of node IDs at that level (including phantom nodes) + nodes_by_level = defaultdict(list) + + + def print_phantom(parent_id, suffix): + phantom_id = parent_id + '_phantom_' + suffix + print '%s [label="",width=.1,style=invis]' % phantom_id + print '%s->%s [style=invis]' % (parent_id, phantom_id) + return phantom_id + + def bfs_visit(): + # base case + if not queue: + return + + n, level = queue.pop(0) + + print n # current node + if n.left or n.right: + if n.left: + print '%s->%s' % (n.id, n.left.id) + queue.append((n.left, level+1)) + nodes_by_level[level+1].append(n.left.id) + else: + # insert phantom to make tree look good + ph_id = print_phantom(n.id, 'L') + nodes_by_level[level+1].append(ph_id) + + # always insert invisible middle phantom + ph_id = print_phantom(n.id, 'M') + nodes_by_level[level+1].append(ph_id) + + if n.right: + print '%s->%s' % (n.id, n.right.id) + queue.append((n.right, level+1)) + nodes_by_level[level+1].append(n.right.id) + else: + # insert phantom to make tree look good + ph_id = print_phantom(n.id, 'R') + nodes_by_level[level+1].append(ph_id) + + bfs_visit() # recurse! + + queue.append((root, 1)) + bfs_visit() + + # make sure all nodes at the same level are vertically aligned + for level in nodes_by_level: + node_ids = nodes_by_level[level] + if len(node_ids) > 1: + print '{rank=same %s [style=invis]}' % '->'.join(node_ids) + + print '}' + + +if __name__ == "__main__": + # simple test tree + a = TreeNode('a') + + b0 = TreeNode('b0') + a.left = b0 + + b1 = TreeNode('b1') + a.right = b1 + + c0 = TreeNode('c0') + b0.left = c0 + + c1 = TreeNode('c1') + b0.right = c1 + b0.set_fill('red') + + c2 = TreeNode('c2') + b1.left = c2 + + d1 = TreeNode('d1') + c0.right = d1 + + d2 = TreeNode('d2') + c2.left = d2 + + d3 = TreeNode('d3') + c1.left = d3 + + d4 = TreeNode('d4') + c1.right = d4 + + graphviz_render(a) + + +''' +/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */ + +/* +digraph G { + a -> b0 + xb [label="",width=.1,style=invis] + a -> xb [style=invis] + a -> b1 + + {rank=same b0 -> xb -> b1 [style=invis]} + + b0 -> c0 + xc [label="",width=.1,style=invis] + b0 -> xc [style=invis] + b0 -> c1 + + {rank=same c0 -> xc -> c1 [style=invis]} +} +*/ +''' diff --git a/v3/graphviz-binary-tree/pg_bst.py b/v3/graphviz-binary-tree/pg_bst.py new file mode 100644 index 000000000..e51335b08 --- /dev/null +++ b/v3/graphviz-binary-tree/pg_bst.py @@ -0,0 +1,247 @@ +# Binary search tree + +class BSTNode: + def __init__(self, dat): + self.data = dat + self.parent = None + self.left = None + self.right = None + + def insert(self, dat): + if dat < self.data: + if not self.left: + n = BSTNode(dat) + self.left = n + n.parent = self + else: + self.left.insert(dat) + else: + if not self.right: + n = BSTNode(dat) + self.right = n + n.parent = self + else: + self.right.insert(dat) + + def pretty_print(self, level): + print ' ' * level + str(self.data), '(h=%d)' % self.height() + if self.left: + self.left.pretty_print(level + 1) + if self.right: + self.right.pretty_print(level + 1) + + def search(self, dat): + if self.data == dat: + return self + elif dat < self.data: + if self.left: + return self.left.search(dat) + else: + return None + else: + assert dat > self.data + if self.right: + return self.right.search(dat) + else: + return None + + def search_by_rank(self, r): + if self.rank == r: + return self + elif r < self.rank: + if self.left: + return self.left.search_by_rank(r) + else: + return None + else: + assert r > self.rank + if self.right: + return self.right.search_by_rank(r) + else: + return None + + def predecessor(self): + if self.left: + p = self.left + while p.right: + p = p.right + return p + else: + p = self.parent + while p and p.data > self.data: + p = p.parent + return p + + def successor(self): + if self.right: + s = self.right + while s.left: + s = s.left + return s + else: + p = self.parent + while p and p.data < self.data: + p = p.parent + return p + + def preorder(self, callback): + callback(self) + if self.left: + self.left.preorder(callback) + if self.right: + self.right.preorder(callback) + + def inorder(self, callback): + if self.left: + self.left.inorder(callback) + callback(self) + if self.right: + self.right.inorder(callback) + + def delete(self): + if self.left and self.right: + s = self.successor() + # gypsy switch! + self.data = s.data + s.delete() + elif self.left: + l_child = self.left + if self.parent.left == self: + self.parent.left = l_child + l_child.parent = self.parent + elif self.parent.right == self: + self.parent.right = l_child + l_child.parent = self.parent + elif self.right: + r_child = self.right + if self.parent.left == self: + self.parent.left = r_child + r_child.parent = self.parent + elif self.parent.right == self: + self.parent.right = r_child + r_child.parent = self.parent + else: + # no children + if self.parent: + if self.parent.left == self: + self.parent.left = None + elif self.parent.right == self: + self.parent.right = None + + def height(self): + if not self.left and not self.right: + return 0 + else: + l_height = r_height = 0 + if self.left: + l_height = self.left.height() + if self.right: + r_height = self.right.height() + return 1 + max(l_height, r_height) + + def mirror(self): + n = BSTNode(self.data) + if self.right: + n.left = self.right.mirror() + n.left.parent = n + if self.left: + n.right = self.left.mirror() + n.right.parent = n + return n + + +tree = BSTNode(10) +tree.insert(2) +tree.insert(4) +tree.insert(1) +tree.insert(5) +tree.insert(15) +tree.insert(12) + +tree.pretty_print(0) + +tree.insert(13) +print '---' +tree.pretty_print(0) + +print '--- MIRROR ---' +tree.mirror().pretty_print(0) + + +def search_check(n): + assert tree.search(n.data) == n + +tree.preorder(search_check) + +print '---' +def print_successor(n): + s = n.successor() + if s: + print n.data, 'SUCCESSOR:', s.data + else: + print n.data, 'NO SUCCESSOR' + +tree.preorder(print_successor) + +print '---' +def print_predecessor(n): + p = n.predecessor() + if p: + print n.data, 'PREDECESSOR:', p.data + else: + print n.data, 'NO PREDECESSOR' + +tree.preorder(print_predecessor) + +def pred_succ_check(n): + p = n.predecessor() + if p: + assert p.successor() == n + s = n.successor() + if s: + assert s.predecessor() == n + print n.data, "passed pred_succ_check!" + +print '---' +tree.preorder(pred_succ_check) + +rank = 0 +def augment_with_rank(n): + global rank + n.rank = rank + rank += 1 + +tree.inorder(augment_with_rank) +print '--- RANKS ---' +def print_with_ranks(n): + print n.data, 'RANK:', n.rank + +tree.preorder(print_with_ranks) + +print '--- SEARCH BY RANK ---' +for r in xrange(rank): + print r, tree.search_by_rank(r).data + +print '---' +tree.search(1).delete() +tree.pretty_print(0) +print '---' +tree.search(2).delete() +tree.pretty_print(0) +print '---' +tree.search(5).delete() +tree.pretty_print(0) +print '---' +tree.search(10).delete() +tree.pretty_print(0) +print '---' +tree.search(15).delete() +tree.pretty_print(0) +print '---' +tree.search(12).delete() +tree.pretty_print(0) +print '---' +tree.search(4).delete() +tree.pretty_print(0) + + diff --git a/v3/htmlFrame.py b/v3/htmlFrame.py new file mode 100644 index 000000000..ec57cfd22 --- /dev/null +++ b/v3/htmlFrame.py @@ -0,0 +1,34 @@ +# h t m l F r a m e . p y +# +# Chris Meyers. 09/25/2013 +# +# Holder for attributes to be applied to a template and +# a simple function to apply attributes to template and +# send it to the
      for display + +from pg_logger import setHTML + +dft_template = """ + +

      %(banner)s

      +
      %(item1)s
      +
      %(item2)s
      +
      %(item3)s
      + +""" + +class HtmlFrame : + def __init__ (self, template=dft_template, banner="") : + self.outputOn = True + self.template = template + self.banner = banner + self.item1 = self.item2 = self.item3 = "" + + def makeEofPage(self) : + pass + + def makeFrame (self,template=None) : + if not template : template = self.template + content = template % self.__dict__ + setHTML(content) + diff --git a/v3/html_module.py b/v3/html_module.py new file mode 100644 index 000000000..b9fd08df8 --- /dev/null +++ b/v3/html_module.py @@ -0,0 +1,2 @@ +def display_img(src): + setHTML('' % str(src)) diff --git a/v3/htmlexample_module.py b/v3/htmlexample_module.py new file mode 100644 index 000000000..f72cf6979 --- /dev/null +++ b/v3/htmlexample_module.py @@ -0,0 +1,71 @@ +# Example module for Online Python Tutor +# Philip Guo +# 2013-08-03 + +# To get the Online Python Tutor backend to import this custom module, +# add its filename ('htmlexample_module') to the CUSTOM_MODULE_IMPORTS +# tuple in pg_logger.py + +# To see an example of this module at work, write the following code in +# http://pythontutor.com/visualize.html +''' +from htmlexample_module import ColorTable + +t = ColorTable(3, 4) + +t.set_color(0, 0, 'red') +t.render_HTML() + +t.set_color(1, 1, 'green') +t.render_HTML() + +t.set_color(2, 2, 'blue') +t.render_HTML() + +for i in range(3): + for j in range(4): + t.set_color(i, j, 'gray') + t.render_HTML() +''' + + +# defines a simple table where you can set colors for individual rows and columns +class ColorTable: + def __init__(self, num_rows, num_columns): + self.num_rows = num_rows + self.num_columns = num_columns + + # create a 2D matrix of empty strings + self.table = [] + for i in range(self.num_rows): + new_lst = ['' for e in range(self.num_columns)] + self.table.append(new_lst) + + + # color must be a legal HTML color string + def set_color(self, row, column, color): + assert 0 <= row < self.num_rows + assert 0 <= column < self.num_columns + self.table[row][column] = color + + + # call this function whenever you want to render this table in HTML + def render_HTML(self): + # incrementally build up an HTML table string + html_string = '' + + for i in range(self.num_rows): + html_string += '' + for j in range(self.num_columns): + color = self.table[i][j] + if not color: + color = "white" + html_string += '''''' % color + html_string += '' + + html_string += '
      ' + + # then call the magic setHTML function + setHTML(html_string) + diff --git a/v3/iframe-embed-demo.html b/v3/iframe-embed-demo.html new file mode 100644 index 000000000..97f95ec5f --- /dev/null +++ b/v3/iframe-embed-demo.html @@ -0,0 +1,21 @@ + + + + + Online Python Tutor - iframe embed demo + + + + + + +

      + + + +

      + + + + + diff --git a/v3/iframe-embed.html b/v3/iframe-embed.html new file mode 100644 index 000000000..1a79cf609 --- /dev/null +++ b/v3/iframe-embed.html @@ -0,0 +1,31 @@ + + + + + Online Python Tutor - iframe embed page + + + + + + + + + + + + + + + + + + + + + +

      + + + diff --git a/v3/index.html b/v3/index.html new file mode 100644 index 000000000..afa4de1cc --- /dev/null +++ b/v3/index.html @@ -0,0 +1,301 @@ + + + + + + + +Online Python Tutor - Learn programming by visualizing code execution + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + +
      + +
      + +

      LEARN programming by visualizing code execution

      + + + + +

      Online Python Tutor is a +free educational tool created by Philip Guo +that helps students overcome a fundamental +barrier to learning programming: understanding what happens as the +computer executes each line of a program's source code. Using this +tool, a teacher or student can write a Python program in the Web +browser and visualize what the computer is doing step-by-step as it +executes the program.

      + +

      As of Dec 2013, over 500,000 people in over 165 +countries have used Online Python Tutor to understand and debug +their programs, often as a supplement to textbooks, lecture notes, and +online programming tutorials. Over 6,000 pieces of Python code are +executed and visualized every day.

      + +

      Users include self-directed learners, students taking online courses +from Coursera, edX, +and Udacity, and +professors in dozens of universities such as MIT, UC Berkeley, and the +University of Washington.

      + + + + +

      As a demo, here is a visualization showing a program that recursively +finds the sum of a (cons-style) linked list. +Click the “Forward” button to see what happens as the +computer executes each line of code.

      + +
      + +

      You can also visualize execution in the IPython shell in interactive +mode. + +Watch this one-minute overview: +

      + +

      + + + +

      + + +

      +Read +the research paper – Philip J. Guo. Online Python Tutor: Embeddable +Web-Based Program Visualization for CS Education. In Proceedings +of the ACM Technical Symposium on Computer Science Education +(SIGCSE), March 2013. +

      + + +
      + +
      + + + + + + + +
      + +
      + +

      EMBED visualizations in digital textbooks

      + +

      Using a single line of JavaScript code, you can embed an Online Python Tutor +visualization within your Web page (as shown in the “Learn” +box above). The screenshot below shows a few of these visualizations +embedded within the online textbook for the introductory CS course at UC +Berkeley (CS61A): + +

      + + +

      + +These visualizations have also been embedded within two other Web-based +Python textbook projects: How +to Think Like a Computer Scientist: Interactive Edition and Computer Science Circles. +These textbooks collectively attract around 16,000 unique viewers per +month and are being used in at least 25 universities around the world. + +

      + +

      + +In addition, instructors have embedded Online Python Tutor +visualizations into LMS platforms such as Moodle and edX. + +

      + +
      + +
      + +
      + +

      SHARE visualizations online

      + +

      To share your current visualization, click the “Generate +URL” button (at the bottom of this +page) and paste that URL link in an email, social networking +post, or forum question. When recipients click on that link, they will +see your exact visualization. This feature provides a more effective way for +students to seek assistance than copying and pasting code snippets.

      + +

      For example, clicking this +link brings you directly to step 44 of 57 in a program that finds +prime numbers using the Python for-else construct.

      + +
      + + +
      + +

      +More Details: +

      +

      + +

      +Other Variants: +

      +

      + +
      + +
      + +
      + + + + + + + diff --git a/v3/js/codemirror/codemirror.js b/v3/js/codemirror/codemirror.js new file mode 100644 index 000000000..ff0aa64be --- /dev/null +++ b/v3/js/codemirror/codemirror.js @@ -0,0 +1,3237 @@ +// CodeMirror version 2.33 +// +// All functions that need access to the editor's state live inside +// the CodeMirror function. Below that, at the bottom of the file, +// some utilities are defined. + +// CodeMirror is the only global var we claim +window.CodeMirror = (function() { + "use strict"; + // This is the function that produces an editor instance. Its + // closure is used to store the editor state. + function CodeMirror(place, givenOptions) { + // Determine effective options based on given values and defaults. + var options = {}, defaults = CodeMirror.defaults; + for (var opt in defaults) + if (defaults.hasOwnProperty(opt)) + options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; + + var input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em"); + input.setAttribute("wrap", "off"); input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); + // Wraps and hides input textarea + var inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The empty scrollbar content, used solely for managing the scrollbar thumb. + var scrollbarInner = elt("div", null, "CodeMirror-scrollbar-inner"); + // The vertical scrollbar. Horizontal scrolling is handled by the scroller itself. + var scrollbar = elt("div", [scrollbarInner], "CodeMirror-scrollbar"); + // DIVs containing the selection and the actual code + var lineDiv = elt("div"), selectionDiv = elt("div", null, null, "position: relative; z-index: -1"); + // Blinky cursor, and element used to ensure cursor fits at the end of a line + var cursor = elt("pre", "\u00a0", "CodeMirror-cursor"), widthForcer = elt("pre", "\u00a0", "CodeMirror-cursor", "visibility: hidden"); + // Used to measure text size + var measure = elt("div", null, null, "position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden;"); + var lineSpace = elt("div", [measure, cursor, widthForcer, selectionDiv, lineDiv], null, "position: relative; z-index: 0"); + var gutterText = elt("div", null, "CodeMirror-gutter-text"), gutter = elt("div", [gutterText], "CodeMirror-gutter"); + // Moved around its parent to cover visible view + var mover = elt("div", [gutter, elt("div", [lineSpace], "CodeMirror-lines")], null, "position: relative"); + // Set to the height of the text, causes scrolling + var sizer = elt("div", [mover], null, "position: relative"); + // Provides scrolling + var scroller = elt("div", [sizer], "CodeMirror-scroll"); + scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + var wrapper = elt("div", [inputDiv, scrollbar, scroller], "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : "")); + if (place.appendChild) place.appendChild(wrapper); else place(wrapper); + + themeChanged(); keyMapChanged(); + // Needed to hide big blue blinking cursor on Mobile Safari + if (ios) input.style.width = "0px"; + if (!webkit) scroller.draggable = true; + lineSpace.style.outline = "none"; + if (options.tabindex != null) input.tabIndex = options.tabindex; + if (options.autofocus) focusInput(); + if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; + // Needed to handle Tab key in KHTML + if (khtml) inputDiv.style.height = "1px", inputDiv.style.position = "absolute"; + + // Check for OS X >= 10.7. This has transparent scrollbars, so the + // overlaying of one scrollbar with another won't work. This is a + // temporary hack to simply turn off the overlay scrollbar. See + // issue #727. + if (mac_geLion) { scrollbar.style.zIndex = -2; scrollbar.style.visibility = "hidden"; } + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + else if (ie_lt8) scrollbar.style.minWidth = "18px"; + + // Check for problem with IE innerHTML not working when we have a + // P (or similar) parent node. + try { charWidth(); } + catch (e) { + if (e.message.match(/runtime/i)) + e = new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)"); + throw e; + } + + // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval. + var poll = new Delayed(), highlight = new Delayed(), blinker; + + // mode holds a mode API object. doc is the tree of Line objects, + // work an array of lines that should be parsed, and history the + // undo history (instance of History constructor). + var mode, doc = new BranchChunk([new LeafChunk([new Line("")])]), work, focused; + loadMode(); + // The selection. These are always maintained to point at valid + // positions. Inverted is used to remember that the user is + // selecting bottom-to-top. + var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false}; + // Selection-related flags. shiftSelecting obviously tracks + // whether the user is holding shift. + var shiftSelecting, lastClick, lastDoubleClick, lastScrollTop = 0, draggingText, + overwrite = false, suppressEdits = false; + // Variables used by startOperation/endOperation to track what + // happened during the operation. + var updateInput, userSelChange, changes, textChanged, selectionChanged, leaveInputAlone, + gutterDirty, callbacks; + // Current visible range (may be bigger than the view window). + var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0; + // bracketHighlighted is used to remember that a bracket has been + // marked. + var bracketHighlighted; + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + var maxLine = getLine(0), updateMaxLine = false, maxLineChanged = true; + var tabCache = {}; + var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll + var goalColumn = null; + + // Initialize the content. + operation(function(){setValue(options.value || ""); updateInput = false;})(); + var history = new History(); + + // Register our event handlers. + connect(scroller, "mousedown", operation(onMouseDown)); + connect(scroller, "dblclick", operation(onDoubleClick)); + connect(lineSpace, "selectstart", e_preventDefault); + // Gecko browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for Gecko. + if (!gecko) connect(scroller, "contextmenu", onContextMenu); + connect(scroller, "scroll", onScrollMain); + connect(scrollbar, "scroll", onScrollBar); + connect(scrollbar, "mousedown", function() {if (focused) setTimeout(focusInput, 0);}); + var resizeHandler = connect(window, "resize", function() { + if (wrapper.parentNode) updateDisplay(true); + else resizeHandler(); + }, true); + connect(input, "keyup", operation(onKeyUp)); + connect(input, "input", fastPoll); + connect(input, "keydown", operation(onKeyDown)); + connect(input, "keypress", operation(onKeyPress)); + connect(input, "focus", onFocus); + connect(input, "blur", onBlur); + + function drag_(e) { + if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return; + e_stop(e); + } + if (options.dragDrop) { + connect(scroller, "dragstart", onDragStart); + connect(scroller, "dragenter", drag_); + connect(scroller, "dragover", drag_); + connect(scroller, "drop", operation(onDrop)); + } + connect(scroller, "paste", function(){focusInput(); fastPoll();}); + connect(input, "paste", fastPoll); + connect(input, "cut", operation(function(){ + if (!options.readOnly) replaceSelection(""); + })); + + // Needed to handle Tab key in KHTML + if (khtml) connect(sizer, "mouseup", function() { + if (document.activeElement == input) input.blur(); + focusInput(); + }); + + // IE throws unspecified error in certain cases, when + // trying to access activeElement before onload + var hasFocus; try { hasFocus = (document.activeElement == input); } catch(e) { } + if (hasFocus || options.autofocus) setTimeout(onFocus, 20); + else onBlur(); + + function isLine(l) {return l >= 0 && l < doc.size;} + // The instance object that we'll return. Mostly calls out to + // local functions in the CodeMirror function. Some do some extra + // range checking and/or clipping. operation is used to wrap the + // call so that changes it makes are tracked, and the display is + // updated afterwards. + var instance = wrapper.CodeMirror = { + getValue: getValue, + setValue: operation(setValue), + getSelection: getSelection, + replaceSelection: operation(replaceSelection), + focus: function(){window.focus(); focusInput(); onFocus(); fastPoll();}, + setOption: function(option, value) { + var oldVal = options[option]; + options[option] = value; + if (option == "mode" || option == "indentUnit") loadMode(); + else if (option == "readOnly" && value == "nocursor") {onBlur(); input.blur();} + else if (option == "readOnly" && !value) {resetInput(true);} + else if (option == "theme") themeChanged(); + else if (option == "lineWrapping" && oldVal != value) operation(wrappingChanged)(); + else if (option == "tabSize") updateDisplay(true); + else if (option == "keyMap") keyMapChanged(); + if (option == "lineNumbers" || option == "gutter" || option == "firstLineNumber" || + option == "theme" || option == "lineNumberFormatter") { + gutterChanged(); + updateDisplay(true); + } + }, + getOption: function(option) {return options[option];}, + undo: operation(undo), + redo: operation(redo), + indentLine: operation(function(n, dir) { + if (typeof dir != "string") { + if (dir == null) dir = options.smartIndent ? "smart" : "prev"; + else dir = dir ? "add" : "subtract"; + } + if (isLine(n)) indentLine(n, dir); + }), + indentSelection: operation(indentSelected), + historySize: function() {return {undo: history.done.length, redo: history.undone.length};}, + clearHistory: function() {history = new History();}, + setHistory: function(histData) { + history = new History(); + history.done = histData.done; + history.undone = histData.undone; + }, + getHistory: function() { + history.time = 0; + return {done: history.done.concat([]), undone: history.undone.concat([])}; + }, + matchBrackets: operation(function(){matchBrackets(true);}), + getTokenAt: operation(function(pos) { + pos = clipPos(pos); + return getLine(pos.line).getTokenAt(mode, getStateBefore(pos.line), options.tabSize, pos.ch); + }), + getStateAfter: function(line) { + line = clipLine(line == null ? doc.size - 1: line); + return getStateBefore(line + 1); + }, + cursorCoords: function(start, mode) { + if (start == null) start = sel.inverted; + return this.charCoords(start ? sel.from : sel.to, mode); + }, + charCoords: function(pos, mode) { + pos = clipPos(pos); + if (mode == "local") return localCoords(pos, false); + if (mode == "div") return localCoords(pos, true); + return pageCoords(pos); + }, + coordsChar: function(coords) { + var off = eltOffset(lineSpace); + return coordsChar(coords.x - off.left, coords.y - off.top); + }, + markText: operation(markText), + setBookmark: setBookmark, + findMarksAt: findMarksAt, + setMarker: operation(addGutterMarker), + clearMarker: operation(removeGutterMarker), + setLineClass: operation(setLineClass), + hideLine: operation(function(h) {return setLineHidden(h, true);}), + showLine: operation(function(h) {return setLineHidden(h, false);}), + onDeleteLine: function(line, f) { + if (typeof line == "number") { + if (!isLine(line)) return null; + line = getLine(line); + } + (line.handlers || (line.handlers = [])).push(f); + return line; + }, + lineInfo: lineInfo, + getViewport: function() { return {from: showingFrom, to: showingTo};}, + addWidget: function(pos, node, scroll, vert, horiz) { + pos = localCoords(clipPos(pos)); + var top = pos.yBot, left = pos.x; + node.style.position = "absolute"; + sizer.appendChild(node); + if (vert == "over") top = pos.y; + else if (vert == "near") { + var vspace = Math.max(scroller.offsetHeight, doc.height * textHeight()), + hspace = Math.max(sizer.clientWidth, lineSpace.clientWidth) - paddingLeft(); + if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight) + top = pos.y - node.offsetHeight; + if (left + node.offsetWidth > hspace) + left = hspace - node.offsetWidth; + } + node.style.top = (top + paddingTop()) + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") left = 0; + else if (horiz == "middle") left = (sizer.clientWidth - node.offsetWidth) / 2; + node.style.left = (left + paddingLeft()) + "px"; + } + if (scroll) + scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight); + }, + + lineCount: function() {return doc.size;}, + clipPos: clipPos, + getCursor: function(start) { + if (start == null) start = sel.inverted; + return copyPos(start ? sel.from : sel.to); + }, + somethingSelected: function() {return !posEq(sel.from, sel.to);}, + setCursor: operation(function(line, ch, user) { + if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch, user); + else setCursor(line, ch, user); + }), + setSelection: operation(function(from, to, user) { + (user ? setSelectionUser : setSelection)(clipPos(from), clipPos(to || from)); + }), + getLine: function(line) {if (isLine(line)) return getLine(line).text;}, + getLineHandle: function(line) {if (isLine(line)) return getLine(line);}, + setLine: operation(function(line, text) { + if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: getLine(line).text.length}); + }), + removeLine: operation(function(line) { + if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0})); + }), + replaceRange: operation(replaceRange), + getRange: function(from, to, lineSep) {return getRange(clipPos(from), clipPos(to), lineSep);}, + + triggerOnKeyDown: operation(onKeyDown), + execCommand: function(cmd) {return commands[cmd](instance);}, + // Stuff used by commands, probably not much use to outside code. + moveH: operation(moveH), + deleteH: operation(deleteH), + moveV: operation(moveV), + toggleOverwrite: function() { + if(overwrite){ + overwrite = false; + cursor.className = cursor.className.replace(" CodeMirror-overwrite", ""); + } else { + overwrite = true; + cursor.className += " CodeMirror-overwrite"; + } + }, + + posFromIndex: function(off) { + var lineNo = 0, ch; + doc.iter(0, doc.size, function(line) { + var sz = line.text.length + 1; + if (sz > off) { ch = off; return true; } + off -= sz; + ++lineNo; + }); + return clipPos({line: lineNo, ch: ch}); + }, + indexFromPos: function (coords) { + if (coords.line < 0 || coords.ch < 0) return 0; + var index = coords.ch; + doc.iter(0, coords.line, function (line) { + index += line.text.length + 1; + }); + return index; + }, + scrollTo: function(x, y) { + if (x != null) scroller.scrollLeft = x; + if (y != null) scrollbar.scrollTop = scroller.scrollTop = y; + updateDisplay([]); + }, + getScrollInfo: function() { + return {x: scroller.scrollLeft, y: scrollbar.scrollTop, + height: scrollbar.scrollHeight, width: scroller.scrollWidth}; + }, + setSize: function(width, height) { + function interpret(val) { + val = String(val); + return /^\d+$/.test(val) ? val + "px" : val; + } + if (width != null) wrapper.style.width = interpret(width); + if (height != null) scroller.style.height = interpret(height); + instance.refresh(); + }, + + operation: function(f){return operation(f)();}, + compoundChange: function(f){return compoundChange(f);}, + refresh: function(){ + updateDisplay(true, null, lastScrollTop); + if (scrollbar.scrollHeight > lastScrollTop) + scrollbar.scrollTop = lastScrollTop; + }, + getInputField: function(){return input;}, + getWrapperElement: function(){return wrapper;}, + getScrollerElement: function(){return scroller;}, + getGutterElement: function(){return gutter;} + }; + + function getLine(n) { return getLineAt(doc, n); } + function updateLineHeight(line, height) { + gutterDirty = true; + var diff = height - line.height; + for (var n = line; n; n = n.parent) n.height += diff; + } + + function setValue(code) { + var top = {line: 0, ch: 0}; + updateLines(top, {line: doc.size - 1, ch: getLine(doc.size-1).text.length}, + splitLines(code), top, top); + updateInput = true; + } + function getValue(lineSep) { + var text = []; + doc.iter(0, doc.size, function(line) { text.push(line.text); }); + return text.join(lineSep || "\n"); + } + + function onScrollBar(e) { + if (scrollbar.scrollTop != lastScrollTop) { + lastScrollTop = scroller.scrollTop = scrollbar.scrollTop; + updateDisplay([]); + } + } + + function onScrollMain(e) { + if (options.fixedGutter && gutter.style.left != scroller.scrollLeft + "px") + gutter.style.left = scroller.scrollLeft + "px"; + if (scroller.scrollTop != lastScrollTop) { + lastScrollTop = scroller.scrollTop; + if (scrollbar.scrollTop != lastScrollTop) + scrollbar.scrollTop = lastScrollTop; + updateDisplay([]); + } + if (options.onScroll) options.onScroll(instance); + } + + function onMouseDown(e) { + setShift(e_prop(e, "shiftKey")); + // Check whether this is a click in a widget + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == sizer && n != mover) return; + + // See if this is a click in the gutter + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) { + if (options.onGutterClick) + options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom, e); + return e_preventDefault(e); + } + + var start = posFromMouse(e); + + switch (e_button(e)) { + case 3: + if (gecko) onContextMenu(e); + return; + case 2: + if (start) setCursor(start.line, start.ch, true); + setTimeout(focusInput, 20); + e_preventDefault(e); + return; + } + // For button 1, if it was clicked inside the editor + // (posFromMouse returning non-null), we have to adjust the + // selection. + if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;} + + if (!focused) onFocus(); + + var now = +new Date, type = "single"; + if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { + type = "triple"; + e_preventDefault(e); + setTimeout(focusInput, 20); + selectLine(start.line); + } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { + type = "double"; + lastDoubleClick = {time: now, pos: start}; + e_preventDefault(e); + var word = findWordAt(start); + setSelectionUser(word.from, word.to); + } else { lastClick = {time: now, pos: start}; } + + function dragEnd(e2) { + if (webkit) scroller.draggable = false; + draggingText = false; + up(); drop(); + if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { + e_preventDefault(e2); + setCursor(start.line, start.ch, true); + focusInput(); + } + } + var last = start, going; + if (options.dragDrop && dragAndDrop && !options.readOnly && !posEq(sel.from, sel.to) && + !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") { + // Let the drag handler handle this. + if (webkit) scroller.draggable = true; + var up = connect(document, "mouseup", operation(dragEnd), true); + var drop = connect(scroller, "drop", operation(dragEnd), true); + draggingText = true; + // IE's approach to draggable + if (scroller.dragDrop) scroller.dragDrop(); + return; + } + e_preventDefault(e); + if (type == "single") setCursor(start.line, start.ch, true); + + var startstart = sel.from, startend = sel.to; + + function doSelect(cur) { + if (type == "single") { + setSelectionUser(start, cur); + } else if (type == "double") { + var word = findWordAt(cur); + if (posLess(cur, startstart)) setSelectionUser(word.from, startend); + else setSelectionUser(startstart, word.to); + } else if (type == "triple") { + if (posLess(cur, startstart)) setSelectionUser(startend, clipPos({line: cur.line, ch: 0})); + else setSelectionUser(startstart, clipPos({line: cur.line + 1, ch: 0})); + } + } + + function extend(e) { + var cur = posFromMouse(e, true); + if (cur && !posEq(cur, last)) { + if (!focused) onFocus(); + last = cur; + doSelect(cur); + updateInput = false; + var visible = visibleLines(); + if (cur.line >= visible.to || cur.line < visible.from) + going = setTimeout(operation(function(){extend(e);}), 150); + } + } + + function done(e) { + clearTimeout(going); + var cur = posFromMouse(e); + if (cur) doSelect(cur); + e_preventDefault(e); + focusInput(); + updateInput = true; + move(); up(); + } + var move = connect(document, "mousemove", operation(function(e) { + clearTimeout(going); + e_preventDefault(e); + if (!ie && !e_button(e)) done(e); + else extend(e); + }), true); + var up = connect(document, "mouseup", operation(done), true); + } + function onDoubleClick(e) { + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) return e_preventDefault(e); + e_preventDefault(e); + } + function onDrop(e) { + if (options.onDragEvent && options.onDragEvent(instance, addStop(e))) return; + e_preventDefault(e); + var pos = posFromMouse(e, true), files = e.dataTransfer.files; + if (!pos || options.readOnly) return; + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var loadFile = function(file, i) { + var reader = new FileReader; + reader.onload = function() { + text[i] = reader.result; + if (++read == n) { + pos = clipPos(pos); + operation(function() { + var end = replaceRange(text.join(""), pos, pos); + setSelectionUser(pos, end); + })(); + } + }; + reader.readAsText(file); + }; + for (var i = 0; i < n; ++i) loadFile(files[i], i); + } else { + // Don't do a replace if the drop happened inside of the selected text. + if (draggingText && !(posLess(pos, sel.from) || posLess(sel.to, pos))) return; + try { + var text = e.dataTransfer.getData("Text"); + if (text) { + compoundChange(function() { + var curFrom = sel.from, curTo = sel.to; + setSelectionUser(pos, pos); + if (draggingText) replaceRange("", curFrom, curTo); + replaceSelection(text); + focusInput(); + }); + } + } + catch(e){} + } + } + function onDragStart(e) { + var txt = getSelection(); + e.dataTransfer.setData("Text", txt); + + // Use dummy image instead of default browsers image. + if (gecko || chrome || opera) { + var img = elt('img'); + img.scr = 'data:image/gif;base64,R0lGODdhAgACAIAAAAAAAP///ywAAAAAAgACAAACAoRRADs='; //1x1 image + e.dataTransfer.setDragImage(img, 0, 0); + } + } + + function doHandleBinding(bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) return false; + } + var prevShift = shiftSelecting; + try { + if (options.readOnly) suppressEdits = true; + if (dropShift) shiftSelecting = null; + bound(instance); + } catch(e) { + if (e != Pass) throw e; + return false; + } finally { + shiftSelecting = prevShift; + suppressEdits = false; + } + return true; + } + var maybeTransition; + function handleKeyBinding(e) { + // Handle auto keymap transitions + var startMap = getKeyMap(options.keyMap), next = startMap.auto; + clearTimeout(maybeTransition); + if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { + if (getKeyMap(options.keyMap) == startMap) { + options.keyMap = (next.call ? next.call(null, instance) : next); + } + }, 50); + + var name = keyNames[e_prop(e, "keyCode")], handled = false; + if (name == null || e.altGraphKey) return false; + if (e_prop(e, "altKey")) name = "Alt-" + name; + if (e_prop(e, "ctrlKey")) name = "Ctrl-" + name; + if (e_prop(e, "metaKey")) name = "Cmd-" + name; + + var stopped = false; + function stop() { stopped = true; } + + if (e_prop(e, "shiftKey")) { + handled = lookupKey("Shift-" + name, options.extraKeys, options.keyMap, + function(b) {return doHandleBinding(b, true);}, stop) + || lookupKey(name, options.extraKeys, options.keyMap, function(b) { + if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(b); + }, stop); + } else { + handled = lookupKey(name, options.extraKeys, options.keyMap, doHandleBinding, stop); + } + if (stopped) handled = false; + if (handled) { + e_preventDefault(e); + restartBlink(); + if (ie) { e.oldKeyCode = e.keyCode; e.keyCode = 0; } + } + return handled; + } + function handleCharBinding(e, ch) { + var handled = lookupKey("'" + ch + "'", options.extraKeys, + options.keyMap, function(b) { return doHandleBinding(b, true); }); + if (handled) { + e_preventDefault(e); + restartBlink(); + } + return handled; + } + + var lastStoppedKey = null; + function onKeyDown(e) { + if (!focused) onFocus(); + if (ie && e.keyCode == 27) { e.returnValue = false; } + if (pollingFast) { if (readInput()) pollingFast = false; } + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + var code = e_prop(e, "keyCode"); + // IE does strange things with escape. + setShift(code == 16 || e_prop(e, "shiftKey")); + // First give onKeyEvent option a chance to handle this. + var handled = handleKeyBinding(e); + if (opera) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && e_prop(e, mac ? "metaKey" : "ctrlKey")) + replaceSelection(""); + } + } + function onKeyPress(e) { + if (pollingFast) readInput(); + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + var keyCode = e_prop(e, "keyCode"), charCode = e_prop(e, "charCode"); + if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} + if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(e)) return; + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + if (options.electricChars && mode.electricChars && options.smartIndent && !options.readOnly) { + if (mode.electricChars.indexOf(ch) > -1) + setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 75); + } + if (handleCharBinding(e, ch)) return; + fastPoll(); + } + function onKeyUp(e) { + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + if (e_prop(e, "keyCode") == 16) shiftSelecting = null; + } + + function onFocus() { + if (options.readOnly == "nocursor") return; + if (!focused) { + if (options.onFocus) options.onFocus(instance); + focused = true; + if (scroller.className.search(/\bCodeMirror-focused\b/) == -1) + scroller.className += " CodeMirror-focused"; + if (!leaveInputAlone) resetInput(true); + } + slowPoll(); + restartBlink(); + } + function onBlur() { + if (focused) { + if (options.onBlur) options.onBlur(instance); + focused = false; + if (bracketHighlighted) + operation(function(){ + if (bracketHighlighted) { bracketHighlighted(); bracketHighlighted = null; } + })(); + scroller.className = scroller.className.replace(" CodeMirror-focused", ""); + } + clearInterval(blinker); + setTimeout(function() {if (!focused) shiftSelecting = null;}, 150); + } + + // Replace the range from from to to by the strings in newText. + // Afterwards, set the selection to selFrom, selTo. + function updateLines(from, to, newText, selFrom, selTo) { + if (suppressEdits) return; + if (history) { + var old = []; + doc.iter(from.line, to.line + 1, function(line) { old.push(line.text); }); + history.addChange(from.line, newText.length, old); + while (history.done.length > options.undoDepth) history.done.shift(); + } + updateLinesNoUndo(from, to, newText, selFrom, selTo); + } + function unredoHelper(from, to) { + if (!from.length) return; + var set = from.pop(), out = []; + for (var i = set.length - 1; i >= 0; i -= 1) { + var change = set[i]; + var replaced = [], end = change.start + change.added; + doc.iter(change.start, end, function(line) { replaced.push(line.text); }); + out.push({start: change.start, added: change.old.length, old: replaced}); + var pos = {line: change.start + change.old.length - 1, + ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])}; + updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: getLine(end-1).text.length}, change.old, pos, pos); + } + updateInput = true; + to.push(out); + } + function undo() {unredoHelper(history.done, history.undone);} + function redo() {unredoHelper(history.undone, history.done);} + + function updateLinesNoUndo(from, to, newText, selFrom, selTo) { + if (suppressEdits) return; + var recomputeMaxLength = false, maxLineLength = maxLine.text.length; + if (!options.lineWrapping) + doc.iter(from.line, to.line + 1, function(line) { + if (!line.hidden && line.text.length == maxLineLength) {recomputeMaxLength = true; return true;} + }); + if (from.line != to.line || newText.length > 1) gutterDirty = true; + + var nlines = to.line - from.line, firstLine = getLine(from.line), lastLine = getLine(to.line); + // First adjust the line structure, taking some care to leave highlighting intact. + if (from.ch == 0 && to.ch == 0 && newText[newText.length - 1] == "") { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = [], prevLine = null; + if (from.line) { + prevLine = getLine(from.line - 1); + prevLine.fixMarkEnds(lastLine); + } else lastLine.fixMarkStarts(); + for (var i = 0, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], prevLine)); + if (nlines) doc.remove(from.line, nlines, callbacks); + if (added.length) doc.insert(from.line, added); + } else if (firstLine == lastLine) { + if (newText.length == 1) + firstLine.replace(from.ch, to.ch, newText[0]); + else { + lastLine = firstLine.split(to.ch, newText[newText.length-1]); + firstLine.replace(from.ch, null, newText[0]); + firstLine.fixMarkEnds(lastLine); + var added = []; + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + added.push(lastLine); + doc.insert(from.line + 1, added); + } + } else if (newText.length == 1) { + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, ""); + firstLine.append(lastLine); + doc.remove(from.line + 1, nlines, callbacks); + } else { + var added = []; + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, newText[newText.length-1]); + firstLine.fixMarkEnds(lastLine); + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + if (nlines > 1) doc.remove(from.line + 1, nlines - 1, callbacks); + doc.insert(from.line + 1, added); + } + if (options.lineWrapping) { + var perLine = Math.max(5, scroller.clientWidth / charWidth() - 3); + doc.iter(from.line, from.line + newText.length, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != line.height) updateLineHeight(line, guess); + }); + } else { + doc.iter(from.line, from.line + newText.length, function(line) { + var l = line.text; + if (!line.hidden && l.length > maxLineLength) { + maxLine = line; maxLineLength = l.length; maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) updateMaxLine = true; + } + + // Add these lines to the work array, so that they will be + // highlighted. Adjust work lines if lines were added/removed. + var newWork = [], lendiff = newText.length - nlines - 1; + for (var i = 0, l = work.length; i < l; ++i) { + var task = work[i]; + if (task < from.line) newWork.push(task); + else if (task > to.line) newWork.push(task + lendiff); + } + var hlEnd = from.line + Math.min(newText.length, 500); + highlightLines(from.line, hlEnd); + newWork.push(hlEnd); + work = newWork; + startWorker(100); + // Remember that these lines changed, for updating the display + changes.push({from: from.line, to: to.line + 1, diff: lendiff}); + var changeObj = {from: from, to: to, text: newText}; + if (textChanged) { + for (var cur = textChanged; cur.next; cur = cur.next) {} + cur.next = changeObj; + } else textChanged = changeObj; + + // Update the selection + function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;} + setSelection(clipPos(selFrom), clipPos(selTo), + updateLine(sel.from.line), updateLine(sel.to.line)); + } + + function needsScrollbar() { + var realHeight = doc.height * textHeight() + 2 * paddingTop(); + return realHeight * .99 > scroller.offsetHeight ? realHeight : false; + } + + function updateVerticalScroll(scrollTop) { + var scrollHeight = needsScrollbar(); + scrollbar.style.display = scrollHeight ? "block" : "none"; + if (scrollHeight) { + scrollbarInner.style.height = sizer.style.minHeight = scrollHeight + "px"; + scrollbar.style.height = scroller.clientHeight + "px"; + if (scrollTop != null) { + scrollbar.scrollTop = scroller.scrollTop = scrollTop; + // 'Nudge' the scrollbar to work around a Webkit bug where, + // in some situations, we'd end up with a scrollbar that + // reported its scrollTop (and looked) as expected, but + // *behaved* as if it was still in a previous state (i.e. + // couldn't scroll up, even though it appeared to be at the + // bottom). + if (webkit) setTimeout(function() { + if (scrollbar.scrollTop != scrollTop) return; + scrollbar.scrollTop = scrollTop + (scrollTop ? -1 : 1); + scrollbar.scrollTop = scrollTop; + }, 0); + } + } else { + sizer.style.minHeight = ""; + } + // Position the mover div to align with the current virtual scroll position + mover.style.top = displayOffset * textHeight() + "px"; + } + + function computeMaxLength() { + maxLine = getLine(0); maxLineChanged = true; + var maxLineLength = maxLine.text.length; + doc.iter(1, doc.size, function(line) { + var l = line.text; + if (!line.hidden && l.length > maxLineLength) { + maxLineLength = l.length; maxLine = line; + } + }); + updateMaxLine = false; + } + + function replaceRange(code, from, to) { + from = clipPos(from); + if (!to) to = from; else to = clipPos(to); + code = splitLines(code); + function adjustPos(pos) { + if (posLess(pos, from)) return pos; + if (!posLess(to, pos)) return end; + var line = pos.line + code.length - (to.line - from.line) - 1; + var ch = pos.ch; + if (pos.line == to.line) + ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0)); + return {line: line, ch: ch}; + } + var end; + replaceRange1(code, from, to, function(end1) { + end = end1; + return {from: adjustPos(sel.from), to: adjustPos(sel.to)}; + }); + return end; + } + function replaceSelection(code, collapse) { + replaceRange1(splitLines(code), sel.from, sel.to, function(end) { + if (collapse == "end") return {from: end, to: end}; + else if (collapse == "start") return {from: sel.from, to: sel.from}; + else return {from: sel.from, to: end}; + }); + } + function replaceRange1(code, from, to, computeSel) { + var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length; + var newSel = computeSel({line: from.line + code.length - 1, ch: endch}); + updateLines(from, to, code, newSel.from, newSel.to); + } + + function getRange(from, to, lineSep) { + var l1 = from.line, l2 = to.line; + if (l1 == l2) return getLine(l1).text.slice(from.ch, to.ch); + var code = [getLine(l1).text.slice(from.ch)]; + doc.iter(l1 + 1, l2, function(line) { code.push(line.text); }); + code.push(getLine(l2).text.slice(0, to.ch)); + return code.join(lineSep || "\n"); + } + function getSelection(lineSep) { + return getRange(sel.from, sel.to, lineSep); + } + + function slowPoll() { + if (pollingFast) return; + poll.set(options.pollInterval, function() { + startOperation(); + readInput(); + if (focused) slowPoll(); + endOperation(); + }); + } + function fastPoll() { + var missed = false; + pollingFast = true; + function p() { + startOperation(); + var changed = readInput(); + if (!changed && !missed) {missed = true; poll.set(60, p);} + else {pollingFast = false; slowPoll();} + endOperation(); + } + poll.set(20, p); + } + + // Previnput is a hack to work with IME. If we reset the textarea + // on every change, that breaks IME. So we look for changes + // compared to the previous content instead. (Modern browsers have + // events that indicate IME taking place, but these are not widely + // supported or compatible enough yet to rely on.) + var prevInput = ""; + function readInput() { + if (leaveInputAlone || !focused || hasSelection(input) || options.readOnly) return false; + var text = input.value; + if (text == prevInput) return false; + shiftSelecting = null; + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput[same] == text[same]) ++same; + if (same < prevInput.length) + sel.from = {line: sel.from.line, ch: sel.from.ch - (prevInput.length - same)}; + else if (overwrite && posEq(sel.from, sel.to)) + sel.to = {line: sel.to.line, ch: Math.min(getLine(sel.to.line).text.length, sel.to.ch + (text.length - same))}; + replaceSelection(text.slice(same), "end"); + if (text.length > 1000) { input.value = prevInput = ""; } + else prevInput = text; + return true; + } + function resetInput(user) { + if (!posEq(sel.from, sel.to)) { + prevInput = ""; + input.value = getSelection(); + if (focused) selectInput(input); + } else if (user) prevInput = input.value = ""; + } + + function focusInput() { + if (options.readOnly != "nocursor") input.focus(); + } + + function scrollCursorIntoView() { + var coords = calculateCursorCoords(); + scrollIntoView(coords.x, coords.y, coords.x, coords.yBot); + if (!focused) return; + var box = sizer.getBoundingClientRect(), doScroll = null; + if (coords.y + box.top < 0) doScroll = true; + else if (coords.y + box.top + textHeight() > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; + if (doScroll != null) { + var hidden = cursor.style.display == "none"; + if (hidden) { + cursor.style.display = ""; + cursor.style.left = coords.x + "px"; + cursor.style.top = (coords.y - displayOffset) + "px"; + } + cursor.scrollIntoView(doScroll); + if (hidden) cursor.style.display = "none"; + } + } + function calculateCursorCoords() { + var cursor = localCoords(sel.inverted ? sel.from : sel.to); + var x = options.lineWrapping ? Math.min(cursor.x, lineSpace.offsetWidth) : cursor.x; + return {x: x, y: cursor.y, yBot: cursor.yBot}; + } + function scrollIntoView(x1, y1, x2, y2) { + var scrollPos = calculateScrollPos(x1, y1, x2, y2); + if (scrollPos.scrollLeft != null) {scroller.scrollLeft = scrollPos.scrollLeft;} + if (scrollPos.scrollTop != null) {scrollbar.scrollTop = scroller.scrollTop = scrollPos.scrollTop;} + } + function calculateScrollPos(x1, y1, x2, y2) { + var pl = paddingLeft(), pt = paddingTop(); + y1 += pt; y2 += pt; x1 += pl; x2 += pl; + var screen = scroller.clientHeight, screentop = scrollbar.scrollTop, result = {}; + var docBottom = needsScrollbar() || Infinity; + var atTop = y1 < pt + 10, atBottom = y2 + pt > docBottom - 10; + if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1); + else if (y2 > screentop + screen) result.scrollTop = (atBottom ? docBottom : y2) - screen; + + var screenw = scroller.clientWidth, screenleft = scroller.scrollLeft; + var gutterw = options.fixedGutter ? gutter.clientWidth : 0; + var atLeft = x1 < gutterw + pl + 10; + if (x1 < screenleft + gutterw || atLeft) { + if (atLeft) x1 = 0; + result.scrollLeft = Math.max(0, x1 - 10 - gutterw); + } else if (x2 > screenw + screenleft - 3) { + result.scrollLeft = x2 + 10 - screenw; + } + return result; + } + + function visibleLines(scrollTop) { + var lh = textHeight(), top = (scrollTop != null ? scrollTop : scrollbar.scrollTop) - paddingTop(); + var fromHeight = Math.max(0, Math.floor(top / lh)); + var toHeight = Math.ceil((top + scroller.clientHeight) / lh); + return {from: lineAtHeight(doc, fromHeight), + to: lineAtHeight(doc, toHeight)}; + } + // Uses a set of changes plus the current scroll position to + // determine which DOM updates have to be made, and makes the + // updates. + function updateDisplay(changes, suppressCallback, scrollTop) { + if (!scroller.clientWidth) { + showingFrom = showingTo = displayOffset = 0; + return; + } + // Compute the new visible window + // If scrollTop is specified, use that to determine which lines + // to render instead of the current scrollbar position. + var visible = visibleLines(scrollTop); + // Bail out if the visible area is already rendered and nothing changed. + if (changes !== true && changes.length == 0 && visible.from > showingFrom && visible.to < showingTo) { + updateVerticalScroll(scrollTop); + return; + } + var from = Math.max(visible.from - 100, 0), to = Math.min(doc.size, visible.to + 100); + if (showingFrom < from && from - showingFrom < 20) from = showingFrom; + if (showingTo > to && showingTo - to < 20) to = Math.min(doc.size, showingTo); + + // Create a range of theoretically intact lines, and punch holes + // in that using the change info. + var intact = changes === true ? [] : + computeIntact([{from: showingFrom, to: showingTo, domStart: 0}], changes); + // Clip off the parts that won't be visible + var intactLines = 0; + for (var i = 0; i < intact.length; ++i) { + var range = intact[i]; + if (range.from < from) {range.domStart += (from - range.from); range.from = from;} + if (range.to > to) range.to = to; + if (range.from >= range.to) intact.splice(i--, 1); + else intactLines += range.to - range.from; + } + if (intactLines == to - from && from == showingFrom && to == showingTo) { + updateVerticalScroll(scrollTop); + return; + } + intact.sort(function(a, b) {return a.domStart - b.domStart;}); + + var th = textHeight(), gutterDisplay = gutter.style.display; + lineDiv.style.display = "none"; + patchDisplay(from, to, intact); + lineDiv.style.display = gutter.style.display = ""; + + var different = from != showingFrom || to != showingTo || lastSizeC != scroller.clientHeight + th; + // This is just a bogus formula that detects when the editor is + // resized or the font size changes. + if (different) lastSizeC = scroller.clientHeight + th; + if (from != showingFrom || to != showingTo && options.onViewportChange) + setTimeout(function(){ + if (options.onViewportChange) options.onViewportChange(instance, from, to); + }); + showingFrom = from; showingTo = to; + displayOffset = heightAtLine(doc, from); + + // Since this is all rather error prone, it is honoured with the + // only assertion in the whole file. + if (lineDiv.childNodes.length != showingTo - showingFrom) + throw new Error("BAD PATCH! " + JSON.stringify(intact) + " size=" + (showingTo - showingFrom) + + " nodes=" + lineDiv.childNodes.length); + + function checkHeights() { + var curNode = lineDiv.firstChild, heightChanged = false; + doc.iter(showingFrom, showingTo, function(line) { + // Work around bizarro IE7 bug where, sometimes, our curNode + // is magically replaced with a new node in the DOM, leaving + // us with a reference to an orphan (nextSibling-less) node. + if (!curNode) return; + if (!line.hidden) { + var height = Math.round(curNode.offsetHeight / th) || 1; + if (line.height != height) { + updateLineHeight(line, height); + gutterDirty = heightChanged = true; + } + } + curNode = curNode.nextSibling; + }); + return heightChanged; + } + + if (options.lineWrapping) checkHeights(); + + gutter.style.display = gutterDisplay; + if (different || gutterDirty) { + // If the gutter grew in size, re-check heights. If those changed, re-draw gutter. + updateGutter() && options.lineWrapping && checkHeights() && updateGutter(); + } + updateVerticalScroll(scrollTop); + updateSelection(); + if (!suppressCallback && options.onUpdate) options.onUpdate(instance); + return true; + } + + function computeIntact(intact, changes) { + for (var i = 0, l = changes.length || 0; i < l; ++i) { + var change = changes[i], intact2 = [], diff = change.diff || 0; + for (var j = 0, l2 = intact.length; j < l2; ++j) { + var range = intact[j]; + if (change.to <= range.from && change.diff) + intact2.push({from: range.from + diff, to: range.to + diff, + domStart: range.domStart}); + else if (change.to <= range.from || change.from >= range.to) + intact2.push(range); + else { + if (change.from > range.from) + intact2.push({from: range.from, to: change.from, domStart: range.domStart}); + if (change.to < range.to) + intact2.push({from: change.to + diff, to: range.to + diff, + domStart: range.domStart + (change.to - range.from)}); + } + } + intact = intact2; + } + return intact; + } + + function patchDisplay(from, to, intact) { + function killNode(node) { + var tmp = node.nextSibling; + node.parentNode.removeChild(node); + return tmp; + } + // The first pass removes the DOM nodes that aren't intact. + if (!intact.length) removeChildren(lineDiv); + else { + var domPos = 0, curNode = lineDiv.firstChild, n; + for (var i = 0; i < intact.length; ++i) { + var cur = intact[i]; + while (cur.domStart > domPos) {curNode = killNode(curNode); domPos++;} + for (var j = 0, e = cur.to - cur.from; j < e; ++j) {curNode = curNode.nextSibling; domPos++;} + } + while (curNode) curNode = killNode(curNode); + } + // This pass fills in the lines that actually changed. + var nextIntact = intact.shift(), curNode = lineDiv.firstChild, j = from; + doc.iter(from, to, function(line) { + if (nextIntact && nextIntact.to == j) nextIntact = intact.shift(); + if (!nextIntact || nextIntact.from > j) { + if (line.hidden) var lineElement = elt("pre"); + else { + var lineElement = line.getElement(makeTab); + if (line.className) lineElement.className = line.className; + // Kludge to make sure the styled element lies behind the selection (by z-index) + if (line.bgClassName) { + var pre = elt("pre", "\u00a0", line.bgClassName, "position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: -2"); + lineElement = elt("div", [pre, lineElement], null, "position: relative"); + } + } + lineDiv.insertBefore(lineElement, curNode); + } else { + curNode = curNode.nextSibling; + } + ++j; + }); + } + + function updateGutter() { + if (!options.gutter && !options.lineNumbers) return; + var hText = mover.offsetHeight, hEditor = scroller.clientHeight; + gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px"; + var fragment = document.createDocumentFragment(), i = showingFrom, normalNode; + doc.iter(showingFrom, Math.max(showingTo, showingFrom + 1), function(line) { + if (line.hidden) { + fragment.appendChild(elt("pre")); + } else { + var marker = line.gutterMarker; + var text = options.lineNumbers ? options.lineNumberFormatter(i + options.firstLineNumber) : null; + if (marker && marker.text) + text = marker.text.replace("%N%", text != null ? text : ""); + else if (text == null) + text = "\u00a0"; + var markerElement = fragment.appendChild(elt("pre", null, marker && marker.style)); + markerElement.innerHTML = text; + for (var j = 1; j < line.height; ++j) { + markerElement.appendChild(elt("br")); + markerElement.appendChild(document.createTextNode("\u00a0")); + } + if (!marker) normalNode = i; + } + ++i; + }); + gutter.style.display = "none"; + removeChildrenAndAdd(gutterText, fragment); + // Make sure scrolling doesn't cause number gutter size to pop + if (normalNode != null && options.lineNumbers) { + var node = gutterText.childNodes[normalNode - showingFrom]; + var minwidth = String(doc.size).length, val = eltText(node.firstChild), pad = ""; + while (val.length + pad.length < minwidth) pad += "\u00a0"; + if (pad) node.insertBefore(document.createTextNode(pad), node.firstChild); + } + gutter.style.display = ""; + var resized = Math.abs((parseInt(lineSpace.style.marginLeft) || 0) - gutter.offsetWidth) > 2; + lineSpace.style.marginLeft = gutter.offsetWidth + "px"; + gutterDirty = false; + return resized; + } + function updateSelection() { + var collapsed = posEq(sel.from, sel.to); + var fromPos = localCoords(sel.from, true); + var toPos = collapsed ? fromPos : localCoords(sel.to, true); + var headPos = sel.inverted ? fromPos : toPos, th = textHeight(); + var wrapOff = eltOffset(wrapper), lineOff = eltOffset(lineDiv); + inputDiv.style.top = Math.max(0, Math.min(scroller.offsetHeight, headPos.y + lineOff.top - wrapOff.top)) + "px"; + inputDiv.style.left = Math.max(0, Math.min(scroller.offsetWidth, headPos.x + lineOff.left - wrapOff.left)) + "px"; + if (collapsed) { + cursor.style.top = headPos.y + "px"; + cursor.style.left = (options.lineWrapping ? Math.min(headPos.x, lineSpace.offsetWidth) : headPos.x) + "px"; + cursor.style.display = ""; + selectionDiv.style.display = "none"; + } else { + var sameLine = fromPos.y == toPos.y, fragment = document.createDocumentFragment(); + var clientWidth = lineSpace.clientWidth || lineSpace.offsetWidth; + var clientHeight = lineSpace.clientHeight || lineSpace.offsetHeight; + var add = function(left, top, right, height) { + var rstyle = quirksMode ? "width: " + (!right ? clientWidth : clientWidth - right - left) + "px" + : "right: " + right + "px"; + fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + + "px; top: " + top + "px; " + rstyle + "; height: " + height + "px")); + }; + if (sel.from.ch && fromPos.y >= 0) { + var right = sameLine ? clientWidth - toPos.x : 0; + add(fromPos.x, fromPos.y, right, th); + } + var middleStart = Math.max(0, fromPos.y + (sel.from.ch ? th : 0)); + var middleHeight = Math.min(toPos.y, clientHeight) - middleStart; + if (middleHeight > 0.2 * th) + add(0, middleStart, 0, middleHeight); + if ((!sameLine || !sel.from.ch) && toPos.y < clientHeight - .5 * th) + add(0, toPos.y, clientWidth - toPos.x, th); + removeChildrenAndAdd(selectionDiv, fragment); + cursor.style.display = "none"; + selectionDiv.style.display = ""; + } + } + + function setShift(val) { + if (val) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from); + else shiftSelecting = null; + } + function setSelectionUser(from, to) { + var sh = shiftSelecting && clipPos(shiftSelecting); + if (sh) { + if (posLess(sh, from)) from = sh; + else if (posLess(to, sh)) to = sh; + } + setSelection(from, to); + userSelChange = true; + } + // Update the selection. Last two args are only used by + // updateLines, since they have to be expressed in the line + // numbers before the update. + function setSelection(from, to, oldFrom, oldTo) { + goalColumn = null; + if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;} + if (posEq(sel.from, from) && posEq(sel.to, to)) return; + if (posLess(to, from)) {var tmp = to; to = from; from = tmp;} + + // Skip over hidden lines. + if (from.line != oldFrom) { + var from1 = skipHidden(from, oldFrom, sel.from.ch); + // If there is no non-hidden line left, force visibility on current line + if (!from1) setLineHidden(from.line, false); + else from = from1; + } + if (to.line != oldTo) to = skipHidden(to, oldTo, sel.to.ch); + + if (posEq(from, to)) sel.inverted = false; + else if (posEq(from, sel.to)) sel.inverted = false; + else if (posEq(to, sel.from)) sel.inverted = true; + + if (options.autoClearEmptyLines && posEq(sel.from, sel.to)) { + var head = sel.inverted ? from : to; + if (head.line != sel.from.line && sel.from.line < doc.size) { + var oldLine = getLine(sel.from.line); + if (/^\s+$/.test(oldLine.text)) + setTimeout(operation(function() { + if (oldLine.parent && /^\s+$/.test(oldLine.text)) { + var no = lineNo(oldLine); + replaceRange("", {line: no, ch: 0}, {line: no, ch: oldLine.text.length}); + } + }, 10)); + } + } + + sel.from = from; sel.to = to; + selectionChanged = true; + } + function skipHidden(pos, oldLine, oldCh) { + function getNonHidden(dir) { + var lNo = pos.line + dir, end = dir == 1 ? doc.size : -1; + while (lNo != end) { + var line = getLine(lNo); + if (!line.hidden) { + var ch = pos.ch; + if (toEnd || ch > oldCh || ch > line.text.length) ch = line.text.length; + return {line: lNo, ch: ch}; + } + lNo += dir; + } + } + var line = getLine(pos.line); + var toEnd = pos.ch == line.text.length && pos.ch != oldCh; + if (!line.hidden) return pos; + if (pos.line >= oldLine) return getNonHidden(1) || getNonHidden(-1); + else return getNonHidden(-1) || getNonHidden(1); + } + function setCursor(line, ch, user) { + var pos = clipPos({line: line, ch: ch || 0}); + (user ? setSelectionUser : setSelection)(pos, pos); + } + + function clipLine(n) {return Math.max(0, Math.min(n, doc.size-1));} + function clipPos(pos) { + if (pos.line < 0) return {line: 0, ch: 0}; + if (pos.line >= doc.size) return {line: doc.size-1, ch: getLine(doc.size-1).text.length}; + var ch = pos.ch, linelen = getLine(pos.line).text.length; + if (ch == null || ch > linelen) return {line: pos.line, ch: linelen}; + else if (ch < 0) return {line: pos.line, ch: 0}; + else return pos; + } + + function findPosH(dir, unit) { + var end = sel.inverted ? sel.from : sel.to, line = end.line, ch = end.ch; + var lineObj = getLine(line); + function findNextLine() { + for (var l = line + dir, e = dir < 0 ? -1 : doc.size; l != e; l += dir) { + var lo = getLine(l); + if (!lo.hidden) { line = l; lineObj = lo; return true; } + } + } + function moveOnce(boundToLine) { + if (ch == (dir < 0 ? 0 : lineObj.text.length)) { + if (!boundToLine && findNextLine()) ch = dir < 0 ? lineObj.text.length : 0; + else return false; + } else ch += dir; + return true; + } + if (unit == "char") moveOnce(); + else if (unit == "column") moveOnce(true); + else if (unit == "word") { + var sawWord = false; + for (;;) { + if (dir < 0) if (!moveOnce()) break; + if (isWordChar(lineObj.text.charAt(ch))) sawWord = true; + else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;} + if (dir > 0) if (!moveOnce()) break; + } + } + return {line: line, ch: ch}; + } + function moveH(dir, unit) { + var pos = dir < 0 ? sel.from : sel.to; + if (shiftSelecting || posEq(sel.from, sel.to)) pos = findPosH(dir, unit); + setCursor(pos.line, pos.ch, true); + } + function deleteH(dir, unit) { + if (!posEq(sel.from, sel.to)) replaceRange("", sel.from, sel.to); + else if (dir < 0) replaceRange("", findPosH(dir, unit), sel.to); + else replaceRange("", sel.from, findPosH(dir, unit)); + userSelChange = true; + } + function moveV(dir, unit) { + var dist = 0, pos = localCoords(sel.inverted ? sel.from : sel.to, true); + if (goalColumn != null) pos.x = goalColumn; + if (unit == "page") { + var screen = Math.min(scroller.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var target = coordsChar(pos.x, pos.y + screen * dir); + } else if (unit == "line") { + var th = textHeight(); + var target = coordsChar(pos.x, pos.y + .5 * th + dir * th); + } + if (unit == "page") scrollbar.scrollTop += localCoords(target, true).y - pos.y; + setCursor(target.line, target.ch, true); + goalColumn = pos.x; + } + + function findWordAt(pos) { + var line = getLine(pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + if (pos.after === false || end == line.length) --start; else ++end; + var startChar = line.charAt(start); + var check = isWordChar(startChar) ? isWordChar : + /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} : + function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; + while (start > 0 && check(line.charAt(start - 1))) --start; + while (end < line.length && check(line.charAt(end))) ++end; + } + return {from: {line: pos.line, ch: start}, to: {line: pos.line, ch: end}}; + } + function selectLine(line) { + setSelectionUser({line: line, ch: 0}, clipPos({line: line + 1, ch: 0})); + } + function indentSelected(mode) { + if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode); + var e = sel.to.line - (sel.to.ch ? 0 : 1); + for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode); + } + + function indentLine(n, how) { + if (!how) how = "add"; + if (how == "smart") { + if (!mode.indent) how = "prev"; + else var state = getStateBefore(n); + } + + var line = getLine(n), curSpace = line.indentation(options.tabSize), + curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (how == "smart") { + indentation = mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass) how = "prev"; + } + if (how == "prev") { + if (n) indentation = getLine(n-1).indentation(options.tabSize); + else indentation = 0; + } + else if (how == "add") indentation = curSpace + options.indentUnit; + else if (how == "subtract") indentation = curSpace - options.indentUnit; + indentation = Math.max(0, indentation); + var diff = indentation - curSpace; + + var indentString = "", pos = 0; + if (options.indentWithTabs) + for (var i = Math.floor(indentation / options.tabSize); i; --i) {pos += options.tabSize; indentString += "\t";} + while (pos < indentation) {++pos; indentString += " ";} + + if (indentString != curSpaceString) + replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length}); + } + + function loadMode() { + mode = CodeMirror.getMode(options, options.mode); + doc.iter(0, doc.size, function(line) { line.stateAfter = null; }); + work = [0]; + startWorker(); + } + function gutterChanged() { + var visible = options.gutter || options.lineNumbers; + gutter.style.display = visible ? "" : "none"; + if (visible) gutterDirty = true; + else lineDiv.parentNode.style.marginLeft = 0; + } + function wrappingChanged(from, to) { + if (options.lineWrapping) { + wrapper.className += " CodeMirror-wrap"; + var perLine = scroller.clientWidth / charWidth() - 3; + doc.iter(0, doc.size, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != 1) updateLineHeight(line, guess); + }); + lineSpace.style.minWidth = widthForcer.style.left = ""; + } else { + wrapper.className = wrapper.className.replace(" CodeMirror-wrap", ""); + computeMaxLength(); + doc.iter(0, doc.size, function(line) { + if (line.height != 1 && !line.hidden) updateLineHeight(line, 1); + }); + } + changes.push({from: 0, to: doc.size}); + } + function makeTab(col) { + var w = options.tabSize - col % options.tabSize, cached = tabCache[w]; + if (cached) return cached; + for (var str = "", i = 0; i < w; ++i) str += " "; + var span = elt("span", str, "cm-tab"); + return (tabCache[w] = {element: span, width: w}); + } + function themeChanged() { + scroller.className = scroller.className.replace(/\s*cm-s-\S+/g, "") + + options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + } + function keyMapChanged() { + var style = keyMap[options.keyMap].style; + wrapper.className = wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + + (style ? " cm-keymap-" + style : ""); + } + + function TextMarker() { this.set = []; } + TextMarker.prototype.clear = operation(function() { + var min = Infinity, max = -Infinity; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + if (!mk || !line.parent) continue; + var lineN = lineNo(line); + min = Math.min(min, lineN); max = Math.max(max, lineN); + for (var j = 0; j < mk.length; ++j) + if (mk[j].marker == this) mk.splice(j--, 1); + } + if (min != Infinity) + changes.push({from: min, to: max + 1}); + }); + TextMarker.prototype.find = function() { + var from, to; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + for (var j = 0; j < mk.length; ++j) { + var mark = mk[j]; + if (mark.marker == this) { + if (mark.from != null || mark.to != null) { + var found = lineNo(line); + if (found != null) { + if (mark.from != null) from = {line: found, ch: mark.from}; + if (mark.to != null) to = {line: found, ch: mark.to}; + } + } + } + } + } + return {from: from, to: to}; + }; + + function markText(from, to, className) { + from = clipPos(from); to = clipPos(to); + var tm = new TextMarker(); + if (!posLess(from, to)) return tm; + function add(line, from, to, className) { + getLine(line).addMark(new MarkedText(from, to, className, tm)); + } + if (from.line == to.line) add(from.line, from.ch, to.ch, className); + else { + add(from.line, from.ch, null, className); + for (var i = from.line + 1, e = to.line; i < e; ++i) + add(i, null, null, className); + add(to.line, null, to.ch, className); + } + changes.push({from: from.line, to: to.line + 1}); + return tm; + } + + function setBookmark(pos) { + pos = clipPos(pos); + var bm = new Bookmark(pos.ch); + getLine(pos.line).addMark(bm); + return bm; + } + + function findMarksAt(pos) { + pos = clipPos(pos); + var markers = [], marked = getLine(pos.line).marked; + if (!marked) return markers; + for (var i = 0, e = marked.length; i < e; ++i) { + var m = marked[i]; + if ((m.from == null || m.from <= pos.ch) && + (m.to == null || m.to >= pos.ch)) + markers.push(m.marker || m); + } + return markers; + } + + function addGutterMarker(line, text, className) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = {text: text, style: className}; + gutterDirty = true; + return line; + } + function removeGutterMarker(line) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = null; + gutterDirty = true; + } + + function changeLine(handle, op) { + var no = handle, line = handle; + if (typeof handle == "number") line = getLine(clipLine(handle)); + else no = lineNo(handle); + if (no == null) return null; + if (op(line, no)) changes.push({from: no, to: no + 1}); + else return null; + return line; + } + function setLineClass(handle, className, bgClassName) { + return changeLine(handle, function(line) { + if (line.className != className || line.bgClassName != bgClassName) { + line.className = className; + line.bgClassName = bgClassName; + return true; + } + }); + } + function setLineHidden(handle, hidden) { + return changeLine(handle, function(line, no) { + if (line.hidden != hidden) { + line.hidden = hidden; + if (!options.lineWrapping) { + if (hidden && line.text.length == maxLine.text.length) { + updateMaxLine = true; + } else if (!hidden && line.text.length > maxLine.text.length) { + maxLine = line; updateMaxLine = false; + } + } + updateLineHeight(line, hidden ? 0 : 1); + var fline = sel.from.line, tline = sel.to.line; + if (hidden && (fline == no || tline == no)) { + var from = fline == no ? skipHidden({line: fline, ch: 0}, fline, 0) : sel.from; + var to = tline == no ? skipHidden({line: tline, ch: 0}, tline, 0) : sel.to; + // Can't hide the last visible line, we'd have no place to put the cursor + if (!to) return; + setSelection(from, to); + } + return (gutterDirty = true); + } + }); + } + + function lineInfo(line) { + if (typeof line == "number") { + if (!isLine(line)) return null; + var n = line; + line = getLine(line); + if (!line) return null; + } else { + var n = lineNo(line); + if (n == null) return null; + } + var marker = line.gutterMarker; + return {line: n, handle: line, text: line.text, markerText: marker && marker.text, + markerClass: marker && marker.style, lineClass: line.className, bgClass: line.bgClassName}; + } + + // These are used to go from pixel positions to character + // positions, taking varying character widths into account. + function charFromX(line, x) { + if (x <= 0) return 0; + var lineObj = getLine(line), text = lineObj.text; + function getX(len) { + return measureLine(lineObj, len).left; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil(x / charWidth())); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return to; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) return (toX - x > x - fromX) ? from : to; + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX;} + else {from = middle; fromX = middleX;} + } + } + + function measureLine(line, ch) { + if (ch == 0) return {top: 0, left: 0}; + var wbr = options.lineWrapping && ch < line.text.length && + spanAffectsWrapping.test(line.text.slice(ch - 1, ch + 1)); + var pre = line.getElement(makeTab, ch, wbr); + removeChildrenAndAdd(measure, pre); + var anchor = pre.anchor; + var top = anchor.offsetTop, left = anchor.offsetLeft; + // Older IEs report zero offsets for spans directly after a wrap + if (ie && top == 0 && left == 0) { + var backup = elt("span", "x"); + anchor.parentNode.insertBefore(backup, anchor.nextSibling); + top = backup.offsetTop; + } + return {top: top, left: left}; + } + function localCoords(pos, inLineWrap) { + var x, lh = textHeight(), y = lh * (heightAtLine(doc, pos.line) - (inLineWrap ? displayOffset : 0)); + if (pos.ch == 0) x = 0; + else { + var sp = measureLine(getLine(pos.line), pos.ch); + x = sp.left; + if (options.lineWrapping) y += Math.max(0, sp.top); + } + return {x: x, y: y, yBot: y + lh}; + } + // Coords must be lineSpace-local + function coordsChar(x, y) { + var th = textHeight(), cw = charWidth(), heightPos = displayOffset + Math.floor(y / th); + if (heightPos < 0) return {line: 0, ch: 0}; + var lineNo = lineAtHeight(doc, heightPos); + if (lineNo >= doc.size) return {line: doc.size - 1, ch: getLine(doc.size - 1).text.length}; + var lineObj = getLine(lineNo), text = lineObj.text; + var tw = options.lineWrapping, innerOff = tw ? heightPos - heightAtLine(doc, lineNo) : 0; + if (x <= 0 && innerOff == 0) return {line: lineNo, ch: 0}; + var wrongLine = false; + function getX(len) { + var sp = measureLine(lineObj, len); + if (tw) { + var off = Math.round(sp.top / th); + wrongLine = off != innerOff; + return Math.max(0, sp.left + (off - innerOff) * scroller.clientWidth); + } + return sp.left; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil((x + innerOff * scroller.clientWidth * .9) / cw)); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return {line: lineNo, ch: to}; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) { + var after = x - fromX < toX - x; + return {line: lineNo, ch: after ? from : to, after: after}; + } + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX; if (wrongLine) toX += 1000; } + else {from = middle; fromX = middleX;} + } + } + function pageCoords(pos) { + var local = localCoords(pos, true), off = eltOffset(lineSpace); + return {x: off.left + local.x, y: off.top + local.y, yBot: off.top + local.yBot}; + } + + var cachedHeight, cachedHeightFor, measurePre; + function textHeight() { + if (measurePre == null) { + measurePre = elt("pre"); + for (var i = 0; i < 49; ++i) { + measurePre.appendChild(document.createTextNode("x")); + measurePre.appendChild(elt("br")); + } + measurePre.appendChild(document.createTextNode("x")); + } + var offsetHeight = lineDiv.clientHeight; + if (offsetHeight == cachedHeightFor) return cachedHeight; + cachedHeightFor = offsetHeight; + removeChildrenAndAdd(measure, measurePre.cloneNode(true)); + cachedHeight = measure.firstChild.offsetHeight / 50 || 1; + removeChildren(measure); + return cachedHeight; + } + var cachedWidth, cachedWidthFor = 0; + function charWidth() { + if (scroller.clientWidth == cachedWidthFor) return cachedWidth; + cachedWidthFor = scroller.clientWidth; + var anchor = elt("span", "x"); + var pre = elt("pre", [anchor]); + removeChildrenAndAdd(measure, pre); + return (cachedWidth = anchor.offsetWidth || 10); + } + function paddingTop() {return lineSpace.offsetTop;} + function paddingLeft() {return lineSpace.offsetLeft;} + + function posFromMouse(e, liberal) { + var offW = eltOffset(scroller, true), x, y; + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX; y = e.clientY; } catch (e) { return null; } + // This is a mess of a heuristic to try and determine whether a + // scroll-bar was clicked or not, and to return null if one was + // (and !liberal). + if (!liberal && (x - offW.left > scroller.clientWidth || y - offW.top > scroller.clientHeight)) + return null; + var offL = eltOffset(lineSpace, true); + return coordsChar(x - offL.left, y - offL.top); + } + function onContextMenu(e) { + var pos = posFromMouse(e), scrollPos = scrollbar.scrollTop; + if (!pos || opera) return; // Opera is difficult. + if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) + operation(setCursor)(pos.line, pos.ch); + + var oldCSS = input.style.cssText; + inputDiv.style.position = "absolute"; + input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; " + + "border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + leaveInputAlone = true; + var val = input.value = getSelection(); + focusInput(); + selectInput(input); + function rehide() { + var newVal = splitLines(input.value).join("\n"); + if (newVal != val && !options.readOnly) operation(replaceSelection)(newVal, "end"); + inputDiv.style.position = "relative"; + input.style.cssText = oldCSS; + if (ie_lt9) scrollbar.scrollTop = scrollPos; + leaveInputAlone = false; + resetInput(true); + slowPoll(); + } + + if (gecko) { + e_stop(e); + var mouseup = connect(window, "mouseup", function() { + mouseup(); + setTimeout(rehide, 20); + }, true); + } else { + setTimeout(rehide, 50); + } + } + + // Cursor-blinking + function restartBlink() { + clearInterval(blinker); + var on = true; + cursor.style.visibility = ""; + blinker = setInterval(function() { + cursor.style.visibility = (on = !on) ? "" : "hidden"; + }, options.cursorBlinkRate); + } + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; + function matchBrackets(autoclear) { + var head = sel.inverted ? sel.from : sel.to, line = getLine(head.line), pos = head.ch - 1; + var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; + if (!match) return; + var ch = match.charAt(0), forward = match.charAt(1) == ">", d = forward ? 1 : -1, st = line.styles; + for (var off = pos + 1, i = 0, e = st.length; i < e; i+=2) + if ((off -= st[i].length) <= 0) {var style = st[i+1]; break;} + + var stack = [line.text.charAt(pos)], re = /[(){}[\]]/; + function scan(line, from, to) { + if (!line.text) return; + var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur; + for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) { + var text = st[i]; + if (st[i+1] != style) {pos += d * text.length; continue;} + for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) { + if (pos >= from && pos < to && re.test(cur = text.charAt(j))) { + var match = matching[cur]; + if (match.charAt(1) == ">" == forward) stack.push(cur); + else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false}; + else if (!stack.length) return {pos: pos, match: true}; + } + } + } + } + for (var i = head.line, e = forward ? Math.min(i + 100, doc.size) : Math.max(-1, i - 100); i != e; i+=d) { + var line = getLine(i), first = i == head.line; + var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length); + if (found) break; + } + if (!found) found = {pos: null, match: false}; + var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style), + two = found.pos != null && markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style); + var clear = operation(function(){one.clear(); two && two.clear();}); + if (autoclear) setTimeout(clear, 800); + else bracketHighlighted = clear; + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(n) { + var minindent, minline; + for (var search = n, lim = n - 40; search > lim; --search) { + if (search == 0) return 0; + var line = getLine(search-1); + if (line.stateAfter) return search; + var indented = line.indentation(options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + function getStateBefore(n) { + var start = findStartLine(n), state = start && getLine(start-1).stateAfter; + if (!state) state = startState(mode); + else state = copyState(mode, state); + doc.iter(start, n, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + if (start < n) changes.push({from: start, to: n}); + if (n < doc.size && !getLine(n).stateAfter) work.push(n); + return state; + } + function highlightLines(start, end) { + var state = getStateBefore(start); + doc.iter(start, end, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + } + function highlightWorker() { + var end = +new Date + options.workTime; + var foundWork = work.length; + while (work.length) { + if (!getLine(showingFrom).stateAfter) var task = showingFrom; + else var task = work.pop(); + if (task >= doc.size) continue; + var start = findStartLine(task), state = start && getLine(start-1).stateAfter; + if (state) state = copyState(mode, state); + else state = startState(mode); + + var unchanged = 0, compare = mode.compareStates, realChange = false, + i = start, bail = false; + doc.iter(i, doc.size, function(line) { + var hadState = line.stateAfter; + if (+new Date > end) { + work.push(i); + startWorker(options.workDelay); + if (realChange) changes.push({from: task, to: i + 1}); + return (bail = true); + } + var changed = line.highlight(mode, state, options.tabSize); + if (changed) realChange = true; + line.stateAfter = copyState(mode, state); + var done = null; + if (compare) { + var same = hadState && compare(hadState, state); + if (same != Pass) done = !!same; + } + if (done == null) { + if (changed !== false || !hadState) unchanged = 0; + else if (++unchanged > 3 && (!mode.indent || mode.indent(hadState, "") == mode.indent(state, ""))) + done = true; + } + if (done) return true; + ++i; + }); + if (bail) return; + if (realChange) changes.push({from: task, to: i + 1}); + } + if (foundWork && options.onHighlightComplete) + options.onHighlightComplete(instance); + } + function startWorker(time) { + if (!work.length) return; + highlight.set(time, operation(highlightWorker)); + } + + // Operations are used to wrap changes in such a way that each + // change won't have to update the cursor and display (which would + // be awkward, slow, and error-prone), but instead updates are + // batched and then all combined and executed at once. + function startOperation() { + updateInput = userSelChange = textChanged = null; + changes = []; selectionChanged = false; callbacks = []; + } + function endOperation() { + if (updateMaxLine) computeMaxLength(); + if (maxLineChanged && !options.lineWrapping) { + var cursorWidth = widthForcer.offsetWidth, left = measureLine(maxLine, maxLine.text.length).left; + if (!ie_lt8) { + widthForcer.style.left = left + "px"; + lineSpace.style.minWidth = (left + cursorWidth) + "px"; + } + maxLineChanged = false; + } + var newScrollPos, updated; + if (selectionChanged) { + var coords = calculateCursorCoords(); + newScrollPos = calculateScrollPos(coords.x, coords.y, coords.x, coords.yBot); + } + if (changes.length || newScrollPos && newScrollPos.scrollTop != null) + updated = updateDisplay(changes, true, newScrollPos && newScrollPos.scrollTop); + if (!updated) { + if (selectionChanged) updateSelection(); + if (gutterDirty) updateGutter(); + } + if (newScrollPos) scrollCursorIntoView(); + if (selectionChanged) restartBlink(); + + if (focused && !leaveInputAlone && + (updateInput === true || (updateInput !== false && selectionChanged))) + resetInput(userSelChange); + + if (selectionChanged && options.matchBrackets) + setTimeout(operation(function() { + if (bracketHighlighted) {bracketHighlighted(); bracketHighlighted = null;} + if (posEq(sel.from, sel.to)) matchBrackets(false); + }), 20); + var sc = selectionChanged, cbs = callbacks; // these can be reset by callbacks + if (textChanged && options.onChange && instance) + options.onChange(instance, textChanged); + if (sc && options.onCursorActivity) + options.onCursorActivity(instance); + for (var i = 0; i < cbs.length; ++i) cbs[i](instance); + if (updated && options.onUpdate) options.onUpdate(instance); + } + var nestedOperation = 0; + function operation(f) { + return function() { + if (!nestedOperation++) startOperation(); + try {var result = f.apply(this, arguments);} + finally {if (!--nestedOperation) endOperation();} + return result; + }; + } + + function compoundChange(f) { + history.startCompound(); + try { return f(); } finally { history.endCompound(); } + } + + for (var ext in extensions) + if (extensions.propertyIsEnumerable(ext) && + !instance.propertyIsEnumerable(ext)) + instance[ext] = extensions[ext]; + return instance; + } // (end of function CodeMirror) + + // The default configuration options. + CodeMirror.defaults = { + value: "", + mode: null, + theme: "default", + indentUnit: 2, + indentWithTabs: false, + smartIndent: true, + tabSize: 4, + keyMap: "default", + extraKeys: null, + electricChars: true, + autoClearEmptyLines: false, + onKeyEvent: null, + onDragEvent: null, + lineWrapping: false, + lineNumbers: false, + gutter: false, + fixedGutter: false, + firstLineNumber: 1, + readOnly: false, + dragDrop: true, + onChange: null, + onCursorActivity: null, + onViewportChange: null, + onGutterClick: null, + onHighlightComplete: null, + onUpdate: null, + onFocus: null, onBlur: null, onScroll: null, + matchBrackets: false, + cursorBlinkRate: 530, + workTime: 100, + workDelay: 200, + pollInterval: 100, + undoDepth: 40, + tabindex: null, + autofocus: null, + lineNumberFormatter: function(integer) { return integer; } + }; + + var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); + var mac = ios || /Mac/.test(navigator.platform); + var win = /Win/.test(navigator.platform); + + // Known modes, by name and by MIME + var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; + CodeMirror.defineMode = function(name, mode) { + if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; + if (arguments.length > 2) { + mode.dependencies = []; + for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]); + } + modes[name] = mode; + }; + CodeMirror.defineMIME = function(mime, spec) { + mimeModes[mime] = spec; + }; + CodeMirror.resolveMode = function(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) + spec = mimeModes[spec]; + else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) + return CodeMirror.resolveMode("application/xml"); + if (typeof spec == "string") return {name: spec}; + else return spec || {name: "null"}; + }; + CodeMirror.getMode = function(options, spec) { + var spec = CodeMirror.resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) return CodeMirror.getMode(options, "text/plain"); + return mfactory(options, spec); + }; + CodeMirror.listModes = function() { + var list = []; + for (var m in modes) + if (modes.propertyIsEnumerable(m)) list.push(m); + return list; + }; + CodeMirror.listMIMEs = function() { + var list = []; + for (var m in mimeModes) + if (mimeModes.propertyIsEnumerable(m)) list.push({mime: m, mode: mimeModes[m]}); + return list; + }; + + var extensions = CodeMirror.extensions = {}; + CodeMirror.defineExtension = function(name, func) { + extensions[name] = func; + }; + + var commands = CodeMirror.commands = { + selectAll: function(cm) {cm.setSelection({line: 0, ch: 0}, {line: cm.lineCount() - 1});}, + killLine: function(cm) { + var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); + if (!sel && cm.getLine(from.line).length == from.ch) cm.replaceRange("", from, {line: from.line + 1, ch: 0}); + else cm.replaceRange("", from, sel ? to : {line: from.line}); + }, + deleteLine: function(cm) {var l = cm.getCursor().line; cm.replaceRange("", {line: l, ch: 0}, {line: l});}, + undo: function(cm) {cm.undo();}, + redo: function(cm) {cm.redo();}, + goDocStart: function(cm) {cm.setCursor(0, 0, true);}, + goDocEnd: function(cm) {cm.setSelection({line: cm.lineCount() - 1}, null, true);}, + goLineStart: function(cm) {cm.setCursor(cm.getCursor().line, 0, true);}, + goLineStartSmart: function(cm) { + var cur = cm.getCursor(); + var text = cm.getLine(cur.line), firstNonWS = Math.max(0, text.search(/\S/)); + cm.setCursor(cur.line, cur.ch <= firstNonWS && cur.ch ? 0 : firstNonWS, true); + }, + goLineEnd: function(cm) {cm.setSelection({line: cm.getCursor().line}, null, true);}, + goLineUp: function(cm) {cm.moveV(-1, "line");}, + goLineDown: function(cm) {cm.moveV(1, "line");}, + goPageUp: function(cm) {cm.moveV(-1, "page");}, + goPageDown: function(cm) {cm.moveV(1, "page");}, + goCharLeft: function(cm) {cm.moveH(-1, "char");}, + goCharRight: function(cm) {cm.moveH(1, "char");}, + goColumnLeft: function(cm) {cm.moveH(-1, "column");}, + goColumnRight: function(cm) {cm.moveH(1, "column");}, + goWordLeft: function(cm) {cm.moveH(-1, "word");}, + goWordRight: function(cm) {cm.moveH(1, "word");}, + delCharLeft: function(cm) {cm.deleteH(-1, "char");}, + delCharRight: function(cm) {cm.deleteH(1, "char");}, + delWordLeft: function(cm) {cm.deleteH(-1, "word");}, + delWordRight: function(cm) {cm.deleteH(1, "word");}, + indentAuto: function(cm) {cm.indentSelection("smart");}, + indentMore: function(cm) {cm.indentSelection("add");}, + indentLess: function(cm) {cm.indentSelection("subtract");}, + insertTab: function(cm) {cm.replaceSelection("\t", "end");}, + defaultTab: function(cm) { + if (cm.somethingSelected()) cm.indentSelection("add"); + else cm.replaceSelection("\t", "end"); + }, + transposeChars: function(cm) { + var cur = cm.getCursor(), line = cm.getLine(cur.line); + if (cur.ch > 0 && cur.ch < line.length - 1) + cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), + {line: cur.line, ch: cur.ch - 1}, {line: cur.line, ch: cur.ch + 1}); + }, + newlineAndIndent: function(cm) { + cm.replaceSelection("\n", "end"); + cm.indentLine(cm.getCursor().line); + }, + toggleOverwrite: function(cm) {cm.toggleOverwrite();} + }; + + var keyMap = CodeMirror.keyMap = {}; + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharRight", "Backspace": "delCharLeft", "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" + }; + // Note that the save and find-related commands aren't defined by + // default. Unknown commands are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", + "Ctrl-Left": "goWordLeft", "Ctrl-Right": "goWordRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delWordLeft", "Ctrl-Delete": "delWordRight", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + fallthrough: "basic" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goWordLeft", + "Alt-Right": "goWordRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delWordLeft", + "Ctrl-Alt-Backspace": "delWordRight", "Alt-Delete": "delWordRight", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", + fallthrough: ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageUp", "Shift-Ctrl-V": "goPageDown", "Ctrl-D": "delCharRight", "Ctrl-H": "delCharLeft", + "Alt-D": "delWordRight", "Alt-Backspace": "delWordLeft", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" + }; + + function getKeyMap(val) { + if (typeof val == "string") return keyMap[val]; + else return val; + } + function lookupKey(name, extraMap, map, handle, stop) { + function lookup(map) { + map = getKeyMap(map); + var found = map[name]; + if (found === false) { + if (stop) stop(); + return true; + } + if (found != null && handle(found)) return true; + if (map.nofallthrough) { + if (stop) stop(); + return true; + } + var fallthrough = map.fallthrough; + if (fallthrough == null) return false; + if (Object.prototype.toString.call(fallthrough) != "[object Array]") + return lookup(fallthrough); + for (var i = 0, e = fallthrough.length; i < e; ++i) { + if (lookup(fallthrough[i])) return true; + } + return false; + } + if (extraMap && lookup(extraMap)) return true; + return lookup(map); + } + function isModifierKey(event) { + var name = keyNames[e_prop(event, "keyCode")]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + } + + CodeMirror.fromTextArea = function(textarea, options) { + if (!options) options = {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabindex) + options.tabindex = textarea.tabindex; + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = document.body; + // doc.activeElement occasionally throws on IE + try { hasFocus = document.activeElement; } catch(e) {} + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = instance.getValue();} + if (textarea.form) { + // Deplorable hack to make the submit method do the right thing. + var rmSubmit = connect(textarea.form, "submit", save, true); + if (typeof textarea.form.submit == "function") { + var realSubmit = textarea.form.submit; + textarea.form.submit = function wrappedSubmit() { + save(); + textarea.form.submit = realSubmit; + textarea.form.submit(); + textarea.form.submit = wrappedSubmit; + }; + } + } + + textarea.style.display = "none"; + var instance = CodeMirror(function(node) { + textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + instance.save = save; + instance.getTextArea = function() { return textarea; }; + instance.toTextArea = function() { + save(); + textarea.parentNode.removeChild(instance.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + rmSubmit(); + if (typeof textarea.form.submit == "function") + textarea.form.submit = realSubmit; + } + }; + return instance; + }; + + var gecko = /gecko\/\d{7}/i.test(navigator.userAgent); + var ie = /MSIE \d/.test(navigator.userAgent); + var ie_lt8 = /MSIE [1-7]\b/.test(navigator.userAgent); + var ie_lt9 = /MSIE [1-8]\b/.test(navigator.userAgent); + var quirksMode = ie && document.documentMode == 5; + var webkit = /WebKit\//.test(navigator.userAgent); + var chrome = /Chrome\//.test(navigator.userAgent); + var opera = /Opera\//.test(navigator.userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var khtml = /KHTML\//.test(navigator.userAgent); + var mac_geLion = /Mac OS X 10\D([7-9]|\d\d)\D/.test(navigator.userAgent); + + // Utility functions for working with state. Exported because modes + // sometimes need to do this. + function copyState(mode, state) { + if (state === true) return state; + if (mode.copyState) return mode.copyState(state); + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) val = val.concat([]); + nstate[n] = val; + } + return nstate; + } + CodeMirror.copyState = copyState; + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + } + CodeMirror.startState = startState; + + // The character stream used by a mode's parser. + function StringStream(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + } + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == 0;}, + peek: function() {return this.string.charAt(this.pos) || undefined;}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() {return countColumn(this.string, this.start, this.tabSize);}, + indentation: function() {return countColumn(this.string, null, this.tabSize);}, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; + if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);} + }; + CodeMirror.StringStream = StringStream; + + function MarkedText(from, to, className, marker) { + this.from = from; this.to = to; this.style = className; this.marker = marker; + } + MarkedText.prototype = { + attach: function(line) { this.marker.set.push(line); }, + detach: function(line) { + var ix = indexOf(this.marker.set, line); + if (ix > -1) this.marker.set.splice(ix, 1); + }, + split: function(pos, lenBefore) { + if (this.to <= pos && this.to != null) return null; + var from = this.from < pos || this.from == null ? null : this.from - pos + lenBefore; + var to = this.to == null ? null : this.to - pos + lenBefore; + return new MarkedText(from, to, this.style, this.marker); + }, + dup: function() { return new MarkedText(null, null, this.style, this.marker); }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if (fromOpen && to > this.from && (to < this.to || this.to == null)) + this.from = null; + else if (this.from != null && this.from >= from) + this.from = Math.max(to, this.from) + diff; + if (toOpen && (from < this.to || this.to == null) && (from > this.from || this.from == null)) + this.to = null; + else if (this.to != null && this.to > from) + this.to = to < this.to ? this.to + diff : from; + }, + isDead: function() { return this.from != null && this.to != null && this.from >= this.to; }, + sameSet: function(x) { return this.marker == x.marker; } + }; + + function Bookmark(pos) { + this.from = pos; this.to = pos; this.line = null; + } + Bookmark.prototype = { + attach: function(line) { this.line = line; }, + detach: function(line) { if (this.line == line) this.line = null; }, + split: function(pos, lenBefore) { + if (pos < this.from) { + this.from = this.to = (this.from - pos) + lenBefore; + return this; + } + }, + isDead: function() { return this.from > this.to; }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if ((fromOpen || from < this.from) && (toOpen || to > this.to)) { + this.from = 0; this.to = -1; + } else if (this.from > from) { + this.from = this.to = Math.max(to, this.from) + diff; + } + }, + sameSet: function(x) { return false; }, + find: function() { + if (!this.line || !this.line.parent) return null; + return {line: lineNo(this.line), ch: this.from}; + }, + clear: function() { + if (this.line) { + var found = indexOf(this.line.marked, this); + if (found != -1) this.line.marked.splice(found, 1); + this.line = null; + } + } + }; + + // When measuring the position of the end of a line, different + // browsers require different approaches. If an empty span is added, + // many browsers report bogus offsets. Of those, some (Webkit, + // recent IE) will accept a space without moving the whole span to + // the next line when wrapping it, others work with a zero-width + // space. + var eolSpanContent = " "; + if (gecko || (ie && !ie_lt8)) eolSpanContent = "\u200b"; + else if (opera) eolSpanContent = ""; + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + function Line(text, styles) { + this.styles = styles || [text, null]; + this.text = text; + this.height = 1; + } + Line.inheritMarks = function(text, orig) { + var ln = new Line(text), mk = orig && orig.marked; + if (mk) { + for (var i = 0; i < mk.length; ++i) { + if (mk[i].to == null && mk[i].style) { + var newmk = ln.marked || (ln.marked = []), mark = mk[i]; + var nmark = mark.dup(); newmk.push(nmark); nmark.attach(ln); + } + } + } + return ln; + }; + Line.prototype = { + // Replace a piece of a line, keeping the styles around it intact. + replace: function(from, to_, text) { + var st = [], mk = this.marked, to = to_ == null ? this.text.length : to_; + copyStyles(0, from, this.styles, st); + if (text) st.push(text, null); + copyStyles(to, this.text.length, this.styles, st); + this.styles = st; + this.text = this.text.slice(0, from) + text + this.text.slice(to); + this.stateAfter = null; + if (mk) { + var diff = text.length - (to - from); + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + mark.clipTo(from == null, from || 0, to_ == null, to, diff); + if (mark.isDead()) {mark.detach(this); mk.splice(i--, 1);} + } + } + }, + // Split a part off a line, keeping styles and markers intact. + split: function(pos, textBefore) { + var st = [textBefore, null], mk = this.marked; + copyStyles(pos, this.text.length, this.styles, st); + var taken = new Line(textBefore + this.text.slice(pos), st); + if (mk) { + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + var newmark = mark.split(pos, textBefore.length); + if (newmark) { + if (!taken.marked) taken.marked = []; + taken.marked.push(newmark); newmark.attach(taken); + if (newmark == mark) mk.splice(i--, 1); + } + } + } + return taken; + }, + append: function(line) { + var mylen = this.text.length, mk = line.marked, mymk = this.marked; + this.text += line.text; + copyStyles(0, line.text.length, line.styles, this.styles); + if (mymk) { + for (var i = 0; i < mymk.length; ++i) + if (mymk[i].to == null) mymk[i].to = mylen; + } + if (mk && mk.length) { + if (!mymk) this.marked = mymk = []; + outer: for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + if (!mark.from) { + for (var j = 0; j < mymk.length; ++j) { + var mymark = mymk[j]; + if (mymark.to == mylen && mymark.sameSet(mark)) { + mymark.to = mark.to == null ? null : mark.to + mylen; + if (mymark.isDead()) { + mymark.detach(this); + mk.splice(i--, 1); + } + continue outer; + } + } + } + mymk.push(mark); + mark.attach(this); + mark.from += mylen; + if (mark.to != null) mark.to += mylen; + } + } + }, + fixMarkEnds: function(other) { + var mk = this.marked, omk = other.marked; + if (!mk) return; + outer: for (var i = 0; i < mk.length; ++i) { + var mark = mk[i], close = mark.to == null; + if (close && omk) { + for (var j = 0; j < omk.length; ++j) { + var om = omk[j]; + if (!om.sameSet(mark) || om.from != null) continue; + if (mark.from == this.text.length && om.to == 0) { + omk.splice(j, 1); + mk.splice(i--, 1); + continue outer; + } else { + close = false; break; + } + } + } + if (close) mark.to = this.text.length; + } + }, + fixMarkStarts: function() { + var mk = this.marked; + if (!mk) return; + for (var i = 0; i < mk.length; ++i) + if (mk[i].from == null) mk[i].from = 0; + }, + addMark: function(mark) { + mark.attach(this); + if (this.marked == null) this.marked = []; + this.marked.push(mark); + this.marked.sort(function(a, b){return (a.from || 0) - (b.from || 0);}); + }, + // Run the given mode's parser over a line, update the styles + // array, which contains alternating fragments of text and CSS + // classes. + highlight: function(mode, state, tabSize) { + var stream = new StringStream(this.text, tabSize), st = this.styles, pos = 0; + var changed = false, curWord = st[0], prevWord; + if (this.text == "" && mode.blankLine) mode.blankLine(state); + while (!stream.eol()) { + var style = mode.token(stream, state); + var substr = this.text.slice(stream.start, stream.pos); + stream.start = stream.pos; + if (pos && st[pos-1] == style) + st[pos-2] += substr; + else if (substr) { + if (!changed && (st[pos+1] != style || (pos && st[pos-2] != prevWord))) changed = true; + st[pos++] = substr; st[pos++] = style; + prevWord = curWord; curWord = st[pos]; + } + // Give up when line is ridiculously long + if (stream.pos > 5000) { + st[pos++] = this.text.slice(stream.pos); st[pos++] = null; + break; + } + } + if (st.length != pos) {st.length = pos; changed = true;} + if (pos && st[pos-2] != prevWord) changed = true; + // Short lines with simple highlights return null, and are + // counted as changed by the driver because they are likely to + // highlight the same way in various contexts. + return changed || (st.length < 5 && this.text.length < 10 ? null : false); + }, + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(mode, state, tabSize, ch) { + var txt = this.text, stream = new StringStream(txt, tabSize); + while (stream.pos < ch && !stream.eol()) { + stream.start = stream.pos; + var style = mode.token(stream, state); + } + return {start: stream.start, + end: stream.pos, + string: stream.current(), + className: style || null, + state: state}; + }, + indentation: function(tabSize) {return countColumn(this.text, null, tabSize);}, + // Produces an HTML fragment for the line, taking selection, + // marking, and highlighting into account. + getElement: function(makeTab, wrapAt, wrapWBR) { + var first = true, col = 0, specials = /[\t\u0000-\u0019\u200b\u2028\u2029\uFEFF]/g; + var pre = elt("pre"); + function span_(html, text, style) { + if (!text) return; + // Work around a bug where, in some compat modes, IE ignores leading spaces + if (first && ie && text.charAt(0) == " ") text = "\u00a0" + text.slice(1); + first = false; + if (!specials.test(text)) { + col += text.length; + var content = document.createTextNode(text); + } else { + var content = document.createDocumentFragment(), pos = 0; + while (true) { + specials.lastIndex = pos; + var m = specials.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + content.appendChild(document.createTextNode(text.slice(pos, pos + skipped))); + col += skipped; + } + if (!m) break; + pos += skipped + 1; + if (m[0] == "\t") { + var tab = makeTab(col); + content.appendChild(tab.element.cloneNode(true)); + col += tab.width; + } else { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + m[0].charCodeAt(0).toString(16); + content.appendChild(token); + col += 1; + } + } + } + if (style) html.appendChild(elt("span", [content], style)); + else html.appendChild(content); + } + var span = span_; + if (wrapAt != null) { + var outPos = 0, anchor = pre.anchor = elt("span"); + span = function(html, text, style) { + var l = text.length; + if (wrapAt >= outPos && wrapAt < outPos + l) { + if (wrapAt > outPos) { + span_(html, text.slice(0, wrapAt - outPos), style); + // See comment at the definition of spanAffectsWrapping + if (wrapWBR) html.appendChild(elt("wbr")); + } + html.appendChild(anchor); + var cut = wrapAt - outPos; + span_(anchor, opera ? text.slice(cut, cut + 1) : text.slice(cut), style); + if (opera) span_(html, text.slice(cut + 1), style); + wrapAt--; + outPos += l; + } else { + outPos += l; + span_(html, text, style); + if (outPos == wrapAt && outPos == len) { + setTextContent(anchor, eolSpanContent); + html.appendChild(anchor); + } + // Stop outputting HTML when gone sufficiently far beyond measure + else if (outPos > wrapAt + 10 && /\s/.test(text)) span = function(){}; + } + }; + } + + var st = this.styles, allText = this.text, marked = this.marked; + var len = allText.length; + function styleToClass(style) { + if (!style) return null; + return "cm-" + style.replace(/ +/g, " cm-"); + } + if (!allText && wrapAt == null) { + span(pre, " "); + } else if (!marked || !marked.length) { + for (var i = 0, ch = 0; ch < len; i+=2) { + var str = st[i], style = st[i+1], l = str.length; + if (ch + l > len) str = str.slice(0, len - ch); + ch += l; + span(pre, str, styleToClass(style)); + } + } else { + var pos = 0, i = 0, text = "", style, sg = 0; + var nextChange = marked[0].from || 0, marks = [], markpos = 0; + var advanceMarks = function() { + var m; + while (markpos < marked.length && + ((m = marked[markpos]).from == pos || m.from == null)) { + if (m.style != null) marks.push(m); + ++markpos; + } + nextChange = markpos < marked.length ? marked[markpos].from : Infinity; + for (var i = 0; i < marks.length; ++i) { + var to = marks[i].to; + if (to == null) to = Infinity; + if (to == pos) marks.splice(i--, 1); + else nextChange = Math.min(to, nextChange); + } + }; + var m = 0; + while (pos < len) { + if (nextChange == pos) advanceMarks(); + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + var appliedStyle = style; + for (var j = 0; j < marks.length; ++j) + appliedStyle = (appliedStyle ? appliedStyle + " " : "") + marks[j].style; + span(pre, end > upto ? text.slice(0, upto - pos) : text, appliedStyle); + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} + pos = end; + } + text = st[i++]; style = styleToClass(st[i++]); + } + } + } + return pre; + }, + cleanUp: function() { + this.parent = null; + if (this.marked) + for (var i = 0, e = this.marked.length; i < e; ++i) this.marked[i].detach(this); + } + }; + // Utility used by replace and split above + function copyStyles(from, to, source, dest) { + for (var i = 0, pos = 0, state = 0; pos < to; i+=2) { + var part = source[i], end = pos + part.length; + if (state == 0) { + if (end > from) dest.push(part.slice(from - pos, Math.min(part.length, to - pos)), source[i+1]); + if (end >= from) state = 1; + } else if (state == 1) { + if (end > to) dest.push(part.slice(0, to - pos), source[i+1]); + else dest.push(part, source[i+1]); + } + pos = end; + } + } + + // Data structure that holds the sequence of lines. + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + for (var i = 0, e = lines.length, height = 0; i < e; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length; }, + remove: function(at, n, callbacks) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + line.cleanUp(); + if (line.handlers) + for (var j = 0; j < line.handlers.length; ++j) callbacks.push(line.handlers[j]); + } + this.lines.splice(at, n); + }, + collapse: function(lines) { + lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); + }, + insertHeight: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; + }, + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + if (op(this.lines[at])) return true; + } + }; + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0, e = children.length; i < e; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + BranchChunk.prototype = { + chunkSize: function() { return this.size; }, + remove: function(at, n, callbacks) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.remove(at, rm, callbacks); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) break; + at = 0; + } else at -= sz; + } + if (this.size - n < 25) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + collapse: function(lines) { + for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); + }, + insert: function(at, lines) { + var height = 0; + for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; + this.insertHeight(at, lines, height); + }, + insertHeight: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertHeight(at, lines, height); + if (child.lines && child.lines.length > 50) { + while (child.lines.length > 50) { + var spilled = child.lines.splice(child.lines.length - 25, 25); + var newleaf = new LeafChunk(spilled); + child.height -= newleaf.height; + this.children.splice(i + 1, 0, newleaf); + newleaf.parent = this; + } + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + maybeSpill: function() { + if (this.children.length <= 10) return; + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iter: function(from, to, op) { this.iterN(from, to - from, op); }, + iterN: function(at, n, op) { + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) return true; + if ((n -= used) == 0) break; + at = 0; + } else at -= sz; + } + } + }; + + function getLineAt(chunk, n) { + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break; } + n -= sz; + } + } + return chunk.lines[n]; + } + function lineNo(line) { + if (line.parent == null) return null; + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0, e = chunk.children.length; ; ++i) { + if (chunk.children[i] == cur) break; + no += chunk.children[i].chunkSize(); + } + } + return no; + } + function lineAtHeight(chunk, h) { + var n = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], ch = child.height; + if (h < ch) { chunk = child; continue outer; } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + for (var i = 0, e = chunk.lines.length; i < e; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) break; + h -= lh; + } + return n + i; + } + function heightAtLine(chunk, n) { + var h = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; continue outer; } + n -= sz; + h += child.height; + } + return h; + } while (!chunk.lines); + for (var i = 0; i < n; ++i) h += chunk.lines[i].height; + return h; + } + + // The history object 'chunks' changes that are made close together + // and at almost the same time into bigger undoable units. + function History() { + this.time = 0; + this.done = []; this.undone = []; + this.compound = 0; + this.closed = false; + } + History.prototype = { + addChange: function(start, added, old) { + this.undone.length = 0; + var time = +new Date, cur = this.done[this.done.length - 1], last = cur && cur[cur.length - 1]; + var dtime = time - this.time; + + if (this.compound && cur && !this.closed) { + cur.push({start: start, added: added, old: old}); + } else if (dtime > 400 || !last || this.closed || + last.start > start + old.length || last.start + last.added < start) { + this.done.push([{start: start, added: added, old: old}]); + this.closed = false; + } else { + var startBefore = Math.max(0, last.start - start), + endAfter = Math.max(0, (start + old.length) - (last.start + last.added)); + for (var i = startBefore; i > 0; --i) last.old.unshift(old[i - 1]); + for (var i = endAfter; i > 0; --i) last.old.push(old[old.length - i]); + if (startBefore) last.start = start; + last.added += added - (old.length - startBefore - endAfter); + } + this.time = time; + }, + startCompound: function() { + if (!this.compound++) this.closed = true; + }, + endCompound: function() { + if (!--this.compound) this.closed = true; + } + }; + + function stopMethod() {e_stop(this);} + // Ensure an event has a stop method. + function addStop(event) { + if (!event.stop) event.stop = stopMethod; + return event; + } + + function e_preventDefault(e) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + function e_stopPropagation(e) { + if (e.stopPropagation) e.stopPropagation(); + else e.cancelBubble = true; + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + CodeMirror.e_stop = e_stop; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + + function e_target(e) {return e.target || e.srcElement;} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) b = 1; + else if (e.button & 2) b = 3; + else if (e.button & 4) b = 2; + } + if (mac && e.ctrlKey && b == 1) b = 3; + return b; + } + + // Allow 3rd-party code to override event properties by adding an override + // object to an event object. + function e_prop(e, prop) { + var overridden = e.override && e.override.hasOwnProperty(prop); + return overridden ? e.override[prop] : e[prop]; + } + + // Event handler registration. If disconnect is true, it'll return a + // function that unregisters the handler. + function connect(node, type, handler, disconnect) { + if (typeof node.addEventListener == "function") { + node.addEventListener(type, handler, false); + if (disconnect) return function() {node.removeEventListener(type, handler, false);}; + } else { + var wrapHandler = function(event) {handler(event || window.event);}; + node.attachEvent("on" + type, wrapHandler); + if (disconnect) return function() {node.detachEvent("on" + type, wrapHandler);}; + } + } + CodeMirror.connect = connect; + + function Delayed() {this.id = null;} + Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; + + var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie_lt9) return false; + var div = elt('div'); + return "draggable" in div || "dragDrop" in div; + }(); + + // Feature-detect whether newlines in textareas are converted to \r\n + var lineSep = function () { + var te = elt("textarea"); + te.value = "foo\nbar"; + if (te.value.indexOf("\r") > -1) return "\r\n"; + return "\n"; + }(); + + // For a reason I have yet to figure out, some browsers disallow + // word wrapping between certain characters *only* if a new inline + // element is started between them. This makes it hard to reliably + // measure the position of things, since that requires inserting an + // extra span. This terribly fragile set of regexps matches the + // character combinations that suffer from this phenomenon on the + // various browsers. + var spanAffectsWrapping = /^$/; // Won't match any two-character string + if (gecko) spanAffectsWrapping = /$'/; + else if (safari) spanAffectsWrapping = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/; + else if (chrome) spanAffectsWrapping = /\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/; + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) end = string.length; + } + for (var i = 0, n = 0; i < end; ++i) { + if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); + else ++n; + } + return n; + } + + function eltOffset(node, screen) { + // Take the parts of bounding client rect that we are interested in so we are able to edit if need be, + // since the returned value cannot be changed externally (they are kept in sync as the element moves within the page) + try { var box = node.getBoundingClientRect(); box = { top: box.top, left: box.left }; } + catch(e) { box = {top: 0, left: 0}; } + if (!screen) { + // Get the toplevel scroll, working around browser differences. + if (window.pageYOffset == null) { + var t = document.documentElement || document.body.parentNode; + if (t.scrollTop == null) t = document.body; + box.top += t.scrollTop; box.left += t.scrollLeft; + } else { + box.top += window.pageYOffset; box.left += window.pageXOffset; + } + } + return box; + } + + // Get a node's text content. + function eltText(node) { + return node.textContent || node.innerText || node.nodeValue || ""; + } + function selectInput(node) { + if (ios) { // Mobile Safari apparently has a bug where select() is broken. + node.selectionStart = 0; + node.selectionEnd = node.value.length; + } else node.select(); + } + + // Operations on {line, ch} objects. + function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} + function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} + function copyPos(x) {return {line: x.line, ch: x.ch};} + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) e.className = className; + if (style) e.style.cssText = style; + if (typeof content == "string") setTextContent(e, content); + else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); + return e; + } + function removeChildren(e) { + e.innerHTML = ""; + return e; + } + function removeChildrenAndAdd(parent, e) { + removeChildren(parent).appendChild(e); + } + function setTextContent(e, str) { + if (ie_lt9) { + e.innerHTML = ""; + e.appendChild(document.createTextNode(str)); + } else e.textContent = str; + } + CodeMirror.setTextContent = setTextContent; + + // Used to position the cursor after an undo/redo by finding the + // last edited character. + function editEnd(from, to) { + if (!to) return 0; + if (!from) return to.length; + for (var i = from.length, j = to.length; i >= 0 && j >= 0; --i, --j) + if (from.charAt(i) != to.charAt(j)) break; + return j + 1; + } + + function indexOf(collection, elt) { + if (collection.indexOf) return collection.indexOf(elt); + for (var i = 0, e = collection.length; i < e; ++i) + if (collection[i] == elt) return i; + return -1; + } + function isWordChar(ch) { + return /\w/.test(ch) || ch.toUpperCase() != ch.toLowerCase(); + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) nl = string.length; + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result; + } : function(string){return string.split(/\r\n?|\n/);}; + CodeMirror.splitLines = splitLines; + + var hasSelection = window.getSelection ? function(te) { + try { return te.selectionStart != te.selectionEnd; } + catch(e) { return false; } + } : function(te) { + try {var range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) return false; + return range.compareEndPoints("StartToEnd", range) != 0; + }; + + CodeMirror.defineMode("null", function() { + return {token: function(stream) {stream.skipToEnd();}}; + }); + CodeMirror.defineMIME("text/plain", "null"); + + var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete", + 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home", + 63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"}; + CodeMirror.keyNames = keyNames; + (function() { + // Number keys + for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); + // Alphabetic keys + for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); + // Function keys + for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; + })(); + + return CodeMirror; +})(); diff --git a/v3/js/codemirror/python.js b/v3/js/codemirror/python.js new file mode 100644 index 000000000..fc5b9551c --- /dev/null +++ b/v3/js/codemirror/python.js @@ -0,0 +1,338 @@ +CodeMirror.defineMode("python", function(conf, parserConf) { + var ERRORCLASS = 'error'; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b"); + } + + var singleOperators = new RegExp("^[\\+\\-\\*/%&|\\^~<>!]"); + var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]'); + var doubleOperators = new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); + var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); + var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); + var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); + + var wordOperators = wordRegexp(['and', 'or', 'not', 'is', 'in']); + var commonkeywords = ['as', 'assert', 'break', 'class', 'continue', + 'def', 'del', 'elif', 'else', 'except', 'finally', + 'for', 'from', 'global', 'if', 'import', + 'lambda', 'pass', 'raise', 'return', + 'try', 'while', 'with', 'yield']; + var commonBuiltins = ['abs', 'all', 'any', 'bin', 'bool', 'bytearray', 'callable', 'chr', + 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', + 'enumerate', 'eval', 'filter', 'float', 'format', 'frozenset', + 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', + 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', + 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', + 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range', + 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', + 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', + 'type', 'vars', 'zip', '__import__', 'NotImplemented', + 'Ellipsis', '__debug__']; + var py2 = {'builtins': ['apply', 'basestring', 'buffer', 'cmp', 'coerce', 'execfile', + 'file', 'intern', 'long', 'raw_input', 'reduce', 'reload', + 'unichr', 'unicode', 'xrange', 'False', 'True', 'None'], + 'keywords': ['exec', 'print']}; + var py3 = {'builtins': ['ascii', 'bytes', 'exec', 'print'], + 'keywords': ['nonlocal', 'False', 'True', 'None']}; + + if (!!parserConf.version && parseInt(parserConf.version, 10) === 3) { + commonkeywords = commonkeywords.concat(py3.keywords); + commonBuiltins = commonBuiltins.concat(py3.builtins); + var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i"); + } else { + commonkeywords = commonkeywords.concat(py2.keywords); + commonBuiltins = commonBuiltins.concat(py2.builtins); + var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i"); + } + var keywords = wordRegexp(commonkeywords); + var builtins = wordRegexp(commonBuiltins); + + var indentInfo = null; + + // tokenizers + function tokenBase(stream, state) { + // Handle scope changes + if (stream.sol()) { + var scopeOffset = state.scopes[0].offset; + if (stream.eatSpace()) { + var lineOffset = stream.indentation(); + if (lineOffset > scopeOffset) { + indentInfo = 'indent'; + } else if (lineOffset < scopeOffset) { + indentInfo = 'dedent'; + } + return null; + } else { + if (scopeOffset > 0) { + dedent(stream, state); + } + } + } + if (stream.eatSpace()) { + return null; + } + + var ch = stream.peek(); + + // Handle Comments + if (ch === '#') { + stream.skipToEnd(); + return 'comment'; + } + + // Handle Number Literals + if (stream.match(/^[0-9\.]/, false)) { + var floatLiteral = false; + // Floats + if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; } + if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } + if (stream.match(/^\.\d+/)) { floatLiteral = true; } + if (floatLiteral) { + // Float literals may be "imaginary" + stream.eat(/J/i); + return 'number'; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; } + // Binary + if (stream.match(/^0b[01]+/i)) { intLiteral = true; } + // Octal + if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; } + // Decimal + if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { + // Decimal literals may be "imaginary" + stream.eat(/J/i); + // TODO - Can you have imaginary longs? + intLiteral = true; + } + // Zero by itself with no other piece of number. + if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } + if (intLiteral) { + // Integer literals may be "long" + stream.eat(/L/i); + return 'number'; + } + } + + // Handle Strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenStringFactory(stream.current()); + return state.tokenize(stream, state); + } + + // Handle operators and Delimiters + if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { + return null; + } + if (stream.match(doubleOperators) + || stream.match(singleOperators) + || stream.match(wordOperators)) { + return 'operator'; + } + if (stream.match(singleDelimiters)) { + return null; + } + + if (stream.match(keywords)) { + return 'keyword'; + } + + if (stream.match(builtins)) { + return 'builtin'; + } + + if (stream.match(identifiers)) { + return 'variable'; + } + + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenStringFactory(delimiter) { + while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) { + delimiter = delimiter.substr(1); + } + var singleline = delimiter.length == 1; + var OUTCLASS = 'string'; + + return function tokenString(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"\\]/); + if (stream.eat('\\')) { + stream.next(); + if (singleline && stream.eol()) { + return OUTCLASS; + } + } else if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return OUTCLASS; + } else { + stream.eat(/['"]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) { + return ERRORCLASS; + } else { + state.tokenize = tokenBase; + } + } + return OUTCLASS; + }; + } + + function indent(stream, state, type) { + type = type || 'py'; + var indentUnit = 0; + if (type === 'py') { + if (state.scopes[0].type !== 'py') { + state.scopes[0].offset = stream.indentation(); + return; + } + for (var i = 0; i < state.scopes.length; ++i) { + if (state.scopes[i].type === 'py') { + indentUnit = state.scopes[i].offset + conf.indentUnit; + break; + } + } + } else { + indentUnit = stream.column() + stream.current().length; + } + state.scopes.unshift({ + offset: indentUnit, + type: type + }); + } + + function dedent(stream, state, type) { + type = type || 'py'; + if (state.scopes.length == 1) return; + if (state.scopes[0].type === 'py') { + var _indent = stream.indentation(); + var _indent_index = -1; + for (var i = 0; i < state.scopes.length; ++i) { + if (_indent === state.scopes[i].offset) { + _indent_index = i; + break; + } + } + if (_indent_index === -1) { + return true; + } + while (state.scopes[0].offset !== _indent) { + state.scopes.shift(); + } + return false; + } else { + if (type === 'py') { + state.scopes[0].offset = stream.indentation(); + return false; + } else { + if (state.scopes[0].type != type) { + return true; + } + state.scopes.shift(); + return false; + } + } + } + + function tokenLexer(stream, state) { + indentInfo = null; + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle '.' connected identifiers + if (current === '.') { + style = stream.match(identifiers, false) ? null : ERRORCLASS; + if (style === null && state.lastToken === 'meta') { + // Apply 'meta' style to '.' connected identifiers when + // appropriate. + style = 'meta'; + } + return style; + } + + // Handle decorators + if (current === '@') { + return stream.match(identifiers, false) ? 'meta' : ERRORCLASS; + } + + if ((style === 'variable' || style === 'builtin') + && state.lastToken === 'meta') { + style = 'meta'; + } + + // Handle scope changes. + if (current === 'pass' || current === 'return') { + state.dedent += 1; + } + if (current === 'lambda') state.lambda = true; + if ((current === ':' && !state.lambda && state.scopes[0].type == 'py') + || indentInfo === 'indent') { + indent(stream, state); + } + var delimiter_index = '[({'.indexOf(current); + if (delimiter_index !== -1) { + indent(stream, state, '])}'.slice(delimiter_index, delimiter_index+1)); + } + if (indentInfo === 'dedent') { + if (dedent(stream, state)) { + return ERRORCLASS; + } + } + delimiter_index = '])}'.indexOf(current); + if (delimiter_index !== -1) { + if (dedent(stream, state, current)) { + return ERRORCLASS; + } + } + if (state.dedent > 0 && stream.eol() && state.scopes[0].type == 'py') { + if (state.scopes.length > 1) state.scopes.shift(); + state.dedent -= 1; + } + + return style; + } + + var external = { + startState: function(basecolumn) { + return { + tokenize: tokenBase, + scopes: [{offset:basecolumn || 0, type:'py'}], + lastToken: null, + lambda: false, + dedent: 0 + }; + }, + + token: function(stream, state) { + var style = tokenLexer(stream, state); + + state.lastToken = style; + + if (stream.eol() && stream.lambda) { + state.lambda = false; + } + + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase) { + return 0; + } + + return state.scopes[0].offset; + } + + }; + return external; +}); + +CodeMirror.defineMIME("text/x-python", "python"); diff --git a/v3/js/composingprograms.js b/v3/js/composingprograms.js new file mode 100644 index 000000000..c6dfb6176 --- /dev/null +++ b/v3/js/composingprograms.js @@ -0,0 +1,288 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// simplified version of opt-frontend.js for ../composingprograms.html + + +// Pre-reqs: +// - pytutor.js +// - jquery.ba-bbq.min.js +// - opt-frontend-common.js +// should all be imported BEFORE this file + + +var appMode = 'edit'; // 'edit', 'display', or 'display_no_frills' + +var preseededCurInstr = null; // if you passed in a 'curInstr=' in the URL, then set this var + +var myVisualizer = null; // singleton ExecutionVisualizer instance + + +function enterEditMode() { + $.bbq.pushState({ mode: 'edit' }, 2 /* completely override other hash strings to keep URL clean */); +} + +function enterDisplayNoFrillsMode() { + $.bbq.pushState({ mode: 'display_no_frills' }, 2 /* completely override other hash strings to keep URL clean */); +} + +var pyInputCodeMirror; // CodeMirror object that contains the input text + +function setCodeMirrorVal(dat) { + pyInputCodeMirror.setValue(dat.rtrim() /* kill trailing spaces */); + $('#urlOutput,#embedCodeOutput').val(''); + + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); +} + + +$(document).ready(function() { + + $("#embedLinkDiv").hide(); + + pyInputCodeMirror = CodeMirror(document.getElementById('codeInputPane'), { + mode: 'python', + lineNumbers: true, + tabSize: 4, + indentUnit: 4, + // convert tab into four spaces: + extraKeys: {Tab: function(cm) {cm.replaceSelection(" ", "end");}} + }); + + pyInputCodeMirror.setSize(null, '420px'); + + + + // be friendly to the browser's forward and back buttons + // thanks to http://benalman.com/projects/jquery-bbq-plugin/ + $(window).bind("hashchange", function(e) { + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + + if (appMode === undefined || appMode == 'edit') { + $("#pyInputPane").show(); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + // destroy all annotation bubbles (NB: kludgy) + if (myVisualizer) { + myVisualizer.destroyAllAnnotationBubbles(); + } + } + else if (appMode == 'display') { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + + $("#embedLinkDiv").show(); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + + + // do this AFTER making #pyOutputPane visible, or else + // jsPlumb connectors won't render properly + myVisualizer.updateOutput(); + + // customize edit button click functionality AFTER rendering (NB: awkward!) + $('#pyOutputPane #editCodeLinkDiv').show(); + $('#pyOutputPane #editBtn').click(function() { + enterEditMode(); + }); + } + else if (appMode == 'display_no_frills') { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + $("#embedLinkDiv").show(); + } + else { + assert(false); + } + + $('#urlOutput,#embedCodeOutput').val(''); // clear to avoid stale values + }); + + + function executeCode(forceStartingInstr) { + backend_script = python3_backend_script; + + $('#executeBtn').html("Please wait ... processing your code"); + $('#executeBtn').attr('disabled', true); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + var backendOptionsObj = {cumulative_mode: ($('#cumulativeModeSelector').val() == 'true'), + heap_primitives: false, + show_only_outputs: false, + py_crazy_mode: false, + origin: 'composingprograms.js'}; + + var startingInstruction = 0; + + // only do this at most ONCE, and then clear out preseededCurInstr + // NOP anyways if preseededCurInstr is 0 + if (preseededCurInstr) { + startingInstruction = preseededCurInstr; + preseededCurInstr = null; + } + + // forceStartingInstr overrides everything else + if (forceStartingInstr !== undefined) { + startingInstruction = forceStartingInstr; + } + + var frontendOptionsObj = {startingInstruction: startingInstruction, + executeCodeWithRawInputFunc: executeCodeWithRawInput, + updateOutputCallback: function() {$('#urlOutput,#embedCodeOutput').val('');}, + compactFuncLabels: true, + } + + function handleSuccessFunc() { + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); + + $.bbq.pushState({ mode: 'display' }, 2 /* completely override other hash strings to keep URL clean */); + } + + function handleUncaughtExceptionFunc(trace) { + if (trace.length == 1) { + var errorLineNo = trace[0].line - 1; /* CodeMirror lines are zero-indexed */ + if (errorLineNo !== undefined) { + // highlight the faulting line in pyInputCodeMirror + pyInputCodeMirror.focus(); + pyInputCodeMirror.setCursor(errorLineNo, 0); + pyInputCodeMirror.setLineClass(errorLineNo, null, 'errorLine'); + + pyInputCodeMirror.setOption('onChange', function() { + pyInputCodeMirror.setLineClass(errorLineNo, null, null); // reset line back to normal + pyInputCodeMirror.setOption('onChange', null); // cancel + }); + } + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + } + } + + executePythonCode(pyInputCodeMirror.getValue(), + backend_script, backendOptionsObj, + frontendOptionsObj, + 'pyOutputPane', + handleSuccessFunc, handleUncaughtExceptionFunc); + } + + function executeCodeFromScratch() { + // don't execute empty string: + if ($.trim(pyInputCodeMirror.getValue()) == '') { + alert('Type in some code to visualize.'); + return; + } + + // reset these globals + rawInputLst = []; + executeCode(); + } + + function executeCodeWithRawInput(rawInputStr, curInstr) { + enterDisplayNoFrillsMode(); + + // set some globals + rawInputLst.push(rawInputStr); + executeCode(curInstr); + } + + $("#executeBtn").attr('disabled', false); + $("#executeBtn").click(executeCodeFromScratch); + + + var queryStrOptions = getQueryStringOptions(); + + if (queryStrOptions.preseededCode) { + setCodeMirrorVal(queryStrOptions.preseededCode); + } + else { + // select a canned example on start-up: + $("#aliasExampleLink").trigger('click'); + } + + // ugh, ugly tristate due to the possibility of each being undefined + if (queryStrOptions.cumulativeState !== undefined) { + $('#cumulativeModeSelector').val(queryStrOptions.cumulativeState); + } + + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + if ((appMode == "display") && queryStrOptions.preseededCode /* jump to display only with pre-seeded code */) { + preseededCurInstr = queryStrOptions.preseededCurInstr; // ugly global + $("#executeBtn").trigger('click'); + } + else { + if (appMode === undefined) { + // default mode is 'edit', don't trigger a "hashchange" event + appMode = 'edit'; + } + else { + // fail-soft by killing all passed-in hashes and triggering a "hashchange" + // event, which will then go to 'edit' mode + $.bbq.removeState(); + } + } + + + // log a generic AJAX error handler + $(document).ajaxError(function() { + alert("Server error (possibly due to memory/resource overload). " + + "Report a bug to philip@pgbovine.net\n\n" + + "(Click the 'Generate URL' button to include a unique URL in your email bug report.)"); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + }); + + + // redraw connector arrows on window resize + $(window).resize(function() { + if (appMode == 'display') { + myVisualizer.redrawConnectors(); + } + }); + + $('#genUrlBtn').bind('click', function() { + var myArgs = {code: pyInputCodeMirror.getValue(), + mode: appMode, + cumulative: $('#cumulativeModeSelector').val(), + py: $('#pythonVersionSelector').val()}; + + if (appMode == 'display') { + myArgs.curInstr = myVisualizer.curInstr; + } + + var urlStr = $.param.fragment(window.location.href, myArgs, 2 /* clobber all */); + $('#urlOutput').val(urlStr); + }); +}); + diff --git a/v3/js/csc108h.js b/v3/js/csc108h.js new file mode 100644 index 000000000..9862ada2a --- /dev/null +++ b/v3/js/csc108h.js @@ -0,0 +1,291 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// simplified version of opt-frontend.js for ../csc108h.html +// for Paul Gries and Jennifer Campbell at Toronto + + +// Pre-reqs: +// - pytutor.js +// - jquery.ba-bbq.min.js +// - opt-frontend-common.js +// should all be imported BEFORE this file + + +var appMode = 'edit'; // 'edit', 'display', or 'display_no_frills' + +var preseededCurInstr = null; // if you passed in a 'curInstr=' in the URL, then set this var + +var myVisualizer = null; // singleton ExecutionVisualizer instance + + +function enterEditMode() { + $.bbq.pushState({ mode: 'edit' }, 2 /* completely override other hash strings to keep URL clean */); +} + +function enterDisplayNoFrillsMode() { + $.bbq.pushState({ mode: 'display_no_frills' }, 2 /* completely override other hash strings to keep URL clean */); +} + +var pyInputCodeMirror; // CodeMirror object that contains the input text + +function setCodeMirrorVal(dat) { + pyInputCodeMirror.setValue(dat.rtrim() /* kill trailing spaces */); + $('#urlOutput,#embedCodeOutput').val(''); + + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); +} + + +$(document).ready(function() { + + $("#embedLinkDiv").hide(); + + pyInputCodeMirror = CodeMirror(document.getElementById('codeInputPane'), { + mode: 'python', + lineNumbers: true, + tabSize: 4, + indentUnit: 4, + // convert tab into four spaces: + extraKeys: {Tab: function(cm) {cm.replaceSelection(" ", "end");}} + }); + + pyInputCodeMirror.setSize(null, '420px'); + + + + // be friendly to the browser's forward and back buttons + // thanks to http://benalman.com/projects/jquery-bbq-plugin/ + $(window).bind("hashchange", function(e) { + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + + if (appMode === undefined || appMode == 'edit') { + $("#pyInputPane").show(); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + // destroy all annotation bubbles (NB: kludgy) + if (myVisualizer) { + myVisualizer.destroyAllAnnotationBubbles(); + } + } + else if (appMode == 'display') { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + + $("#embedLinkDiv").show(); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + + + // do this AFTER making #pyOutputPane visible, or else + // jsPlumb connectors won't render properly + myVisualizer.updateOutput(); + + // customize edit button click functionality AFTER rendering (NB: awkward!) + $('#pyOutputPane #editCodeLinkDiv').show(); + $('#pyOutputPane #editBtn').click(function() { + enterEditMode(); + }); + } + else if (appMode == 'display_no_frills') { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + $("#embedLinkDiv").show(); + } + else { + assert(false); + } + + $('#urlOutput,#embedCodeOutput').val(''); // clear to avoid stale values + }); + + + function executeCode(forceStartingInstr) { + backend_script = python3_backend_script; // Python 3.3 + + $('#executeBtn').html("Please wait ... processing your code"); + $('#executeBtn').attr('disabled', true); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + var backendOptionsObj = {cumulative_mode: false, + heap_primitives: true, // render all objects on the heap + show_only_outputs: false, + py_crazy_mode: false, + origin: 'csc108h.js'}; + + var startingInstruction = 0; + + // only do this at most ONCE, and then clear out preseededCurInstr + // NOP anyways if preseededCurInstr is 0 + if (preseededCurInstr) { + startingInstruction = preseededCurInstr; + preseededCurInstr = null; + } + + // forceStartingInstr overrides everything else + if (forceStartingInstr !== undefined) { + startingInstruction = forceStartingInstr; + } + + var frontendOptionsObj = {startingInstruction: startingInstruction, + executeCodeWithRawInputFunc: executeCodeWithRawInput, + disableHeapNesting: true, // render all objects on the heap + drawParentPointers: true, // show environment parent pointers + textualMemoryLabels: true, // use text labels for references + updateOutputCallback: function() {$('#urlOutput,#embedCodeOutput').val('');}, + } + + function handleSuccessFunc() { + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); + + $.bbq.pushState({ mode: 'display' }, 2 /* completely override other hash strings to keep URL clean */); + } + + function handleUncaughtExceptionFunc(trace) { + if (trace.length == 1) { + var errorLineNo = trace[0].line - 1; /* CodeMirror lines are zero-indexed */ + if (errorLineNo !== undefined) { + // highlight the faulting line in pyInputCodeMirror + pyInputCodeMirror.focus(); + pyInputCodeMirror.setCursor(errorLineNo, 0); + pyInputCodeMirror.setLineClass(errorLineNo, null, 'errorLine'); + + pyInputCodeMirror.setOption('onChange', function() { + pyInputCodeMirror.setLineClass(errorLineNo, null, null); // reset line back to normal + pyInputCodeMirror.setOption('onChange', null); // cancel + }); + } + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + } + } + + executePythonCode(pyInputCodeMirror.getValue(), + backend_script, backendOptionsObj, + frontendOptionsObj, + 'pyOutputPane', + handleSuccessFunc, handleUncaughtExceptionFunc); + } + + function executeCodeFromScratch() { + // don't execute empty string: + if ($.trim(pyInputCodeMirror.getValue()) == '') { + alert('Type in some code to visualize.'); + return; + } + + // reset these globals + rawInputLst = []; + executeCode(); + } + + function executeCodeWithRawInput(rawInputStr, curInstr) { + enterDisplayNoFrillsMode(); + + // set some globals + rawInputLst.push(rawInputStr); + executeCode(curInstr); + } + + $("#executeBtn").attr('disabled', false); + $("#executeBtn").click(executeCodeFromScratch); + + + var queryStrOptions = getQueryStringOptions(); + + if (queryStrOptions.preseededCode) { + setCodeMirrorVal(queryStrOptions.preseededCode); + } + else { + // select a canned example on start-up: + $("#aliasExampleLink").trigger('click'); + } + + // ugh, ugly tristate due to the possibility of each being undefined + if (queryStrOptions.cumulativeState !== undefined) { + $('#cumulativeModeSelector').val(queryStrOptions.cumulativeState); + } + + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + if ((appMode == "display") && queryStrOptions.preseededCode /* jump to display only with pre-seeded code */) { + preseededCurInstr = queryStrOptions.preseededCurInstr; // ugly global + $("#executeBtn").trigger('click'); + } + else { + if (appMode === undefined) { + // default mode is 'edit', don't trigger a "hashchange" event + appMode = 'edit'; + } + else { + // fail-soft by killing all passed-in hashes and triggering a "hashchange" + // event, which will then go to 'edit' mode + $.bbq.removeState(); + } + } + + + // log a generic AJAX error handler + $(document).ajaxError(function() { + alert("Server error (possibly due to memory/resource overload). " + + "Report a bug to philip@pgbovine.net\n\n" + + "(Click the 'Generate URL' button to include a unique URL in your email bug report.)"); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + }); + + + // redraw connector arrows on window resize + $(window).resize(function() { + if (appMode == 'display') { + myVisualizer.redrawConnectors(); + } + }); + + $('#genUrlBtn').bind('click', function() { + var myArgs = {code: pyInputCodeMirror.getValue(), + mode: appMode, + cumulative: $('#cumulativeModeSelector').val(), + py: $('#pythonVersionSelector').val()}; + + if (appMode == 'display') { + myArgs.curInstr = myVisualizer.curInstr; + } + + var urlStr = $.param.fragment(window.location.href, myArgs, 2 /* clobber all */); + $('#urlOutput').val(urlStr); + }); +}); + diff --git a/v3/js/d3.v2.min.js b/v3/js/d3.v2.min.js new file mode 100644 index 000000000..2a1e13110 --- /dev/null +++ b/v3/js/d3.v2.min.js @@ -0,0 +1,4 @@ +(function(){function d(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}}function f(a){var b=-1,c=a.length,d=[];while(++b=0?a.substring(b):(b=a.length,""),d=[];while(b>0)d.push(a.substring(b-=3,b+3));return d.reverse().join(",")+c}function H(a,b){var c=Math.pow(10,Math.abs(8-b)*3);return{scale:b>8?function(a){return a/c}:function(a){return a*c},symbol:a}}function N(a){return function(b){return b<=0?0:b>=1?1:a(b)}}function O(a){return function(b){return 1-a(1-b)}}function P(a){return function(b){return.5*(b<.5?a(2*b):2-a(2-2*b))}}function Q(a){return a}function R(a){return function(b){return Math.pow(b,a)}}function S(a){return 1-Math.cos(a*Math.PI/2)}function T(a){return Math.pow(2,10*(a-1))}function U(a){return 1-Math.sqrt(1-a*a)}function V(a,b){var c;return arguments.length<2&&(b=.45),arguments.length<1?(a=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/a),function(d){return 1+a*Math.pow(2,10*-d)*Math.sin((d-c)*2*Math.PI/b)}}function W(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function X(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Y(){d3.event.stopPropagation(),d3.event.preventDefault()}function Z(){var a=d3.event,b;while(b=a.sourceEvent)a=b;return a}function $(a){var b=new z,c=0,d=arguments.length;while(++c360?a-=360:a<0&&(a+=360),a<60?d+(e-d)*a/60:a<180?e:a<240?d+(e-d)*(240-a)/60:d}function g(a){return Math.round(f(a)*255)}var d,e;return a%=360,a<0&&(a+=360),b=b<0?0:b>1?1:b,c=c<0?0:c>1?1:c,e=c<=.5?c*(1+b):c+b-c*b,d=2*c-e,bd(g(a+120),g(a),g(a-120))}function bn(a){return i(a,bt),a}function bu(a){return function(){return bo(a,this)}}function bv(a){return function(){return bp(a,this)}}function bw(a,b){function f(){if(b=this.classList)return b.add(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;c.lastIndex=0,c.test(e)||(e=v(e+" "+a),d?b.baseVal=e:this.className=e)}function g(){if(b=this.classList)return b.remove(a);var b=this.className,d=b.baseVal!=null,e=d?b.baseVal:b;e=v(e.replace(c," ")),d?b.baseVal=e:this.className=e}function h(){(b.apply(this,arguments)?f:g).call(this)}var c=new RegExp("(^|\\s+)"+d3.requote(a)+"(\\s+|$)","g");if(arguments.length<2){var d=this.node();if(e=d.classList)return e.contains(a);var e=d.className;return c.lastIndex=0,c.test(e.baseVal!=null?e.baseVal:e)}return this.each(typeof b=="function"?h:b?f:g)}function bx(a){return{__data__:a}}function by(a){return function(){return bs(this,a)}}function bz(a){return arguments.length||(a=d3.ascending),function(b,c){return a(b&&b.__data__,c&&c.__data__)}}function bA(a,b){for(var c=0,d=a.length;cb?q():(m.active=b,d.forEach(function(b,c){(c=c.call(a,n,h))&&j.push(c)}),e.start.call(a,n,h),p(f)||d3.timer(p,0,c),1)}function p(c){if(m.active!==b)return q();var d=(c-k)/l,g=f(d),i=j.length;while(i>0)j[--i].call(a,g);if(d>=1)return q(),bK=b,e.end.call(a,n,h),bK=0,1}function q(){return--m.count||delete a.__transition__,1}var j=[],k=a.delay,l=a.duration,m=(a=a.node).__transition__||(a.__transition__={active:0,count:0}),n=a.__data__;++m.count,k<=g?o(g):d3.timer(o,k,c)})},0,c),a}function bG(a,b,c){return c!=""&&bF}function bH(a,b){function d(a,d,e){var f=b.call(this,a,d);return f==null?e!=""&&bF:e!=f&&c(e,f)}function e(a,d,e){return e!=b&&c(e,b)}var c=ba(a);return typeof b=="function"?d:b==null?bG:(b+="",e)}function bR(a){var b=bK,c=bQ,d=bO,e=bP;return bK=this.id,bQ=this.ease(),bA(this,function(b,c,d){bO=b.delay,bP=b.duration,a.call(b=b.node,b.__data__,c,d)}),bK=b,bQ=c,bO=d,bP=e,this}function bV(){var a,b=Date.now(),c=bS;while(c)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;var d=bW()-b;d>24?(isFinite(d)&&(clearTimeout(bU),bU=setTimeout(bV,d)),bT=0):(bT=1,bX(bV))}function bW(){var a=null,b=bS,c=Infinity;while(b)b.flush?b=a?a.next=b.next:bS=b.next:(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function bY(a){var b=[a.a,a.b],c=[a.c,a.d],d=b$(b),e=bZ(b,c),f=b$(b_(c,b,-e))||0;b[0]*c[1]2?cp:co,i=d?bc:bb;return e=g(a,b,i,c),f=g(b,a,i,d3.interpolate),h}function h(a){return e(a)}var e,f;return h.invert=function(a){return f(a)},h.domain=function(b){return arguments.length?(a=b.map(Number),g()):a},h.range=function(a){return arguments.length?(b=a,g()):b},h.rangeRound=function(a){return h.range(a).interpolate(d3.interpolateRound)},h.clamp=function(a){return arguments.length?(d=a,g()):d},h.interpolate=function(a){return arguments.length?(c=a,g()):c},h.ticks=function(b){return cm(a,b)},h.tickFormat=function(b){return cn(a,b)},h.nice=function(){return cg(a,ck),g()},h.copy=function(){return ci(a,b,c,d)},g()}function cj(a,b){return d3.rebind(a,b,"range","rangeRound","interpolate","clamp")}function ck(a){return a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1),{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function cl(a,b){var c=ce(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return f<=.15?e*=10:f<=.35?e*=5:f<=.75&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+e*.5,c[2]=e,c}function cm(a,b){return d3.range.apply(d3,cl(a,b))}function cn(a,b){return d3.format(",."+Math.max(0,-Math.floor(Math.log(cl(a,b)[2])/Math.LN10+.01))+"f")}function co(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function cp(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;a[h]0;j--)e.push(c(f)*j)}else{for(;fi;g--);e=e.slice(f,g)}return e},d.tickFormat=function(a,e){arguments.length<2&&(e=cr);if(arguments.length<1)return e;var f=Math.max(.1,a/d.ticks().length),g=b===ct?(h=-1e-12,Math.floor):(h=1e-12,Math.ceil),h;return function(a){return a/c(g(b(a)+h))<=f?e(a):""}},d.copy=function(){return cq(a.copy(),b)},cj(d,a)}function cs(a){return Math.log(a<0?0:a)/Math.LN10}function ct(a){return-Math.log(a>0?0:-a)/Math.LN10}function cu(a,b){function e(b){return a(c(b))}var c=cv(b),d=cv(1/b);return e.invert=function(b){return d(a.invert(b))},e.domain=function(b){return arguments.length?(a.domain(b.map(c)),e):a.domain().map(d)},e.ticks=function(a){return cm(e.domain(),a)},e.tickFormat=function(a){return cn(e.domain(),a)},e.nice=function(){return e.domain(cg(e.domain(),ck))},e.exponent=function(a){if(!arguments.length)return b;var f=e.domain();return c=cv(b=a),d=cv(1/b),e.domain(f)},e.copy=function(){return cu(a.copy(),b)},cj(e,a)}function cv(a){return function(b){return b<0?-Math.pow(-b,a):Math.pow(b,a)}}function cw(a,b){function f(b){return d[((c.get(b)||c.set(b,a.push(b)))-1)%d.length]}function g(b,c){return d3.range(a.length).map(function(a){return b+c*a})}var c,d,e;return f.domain=function(d){if(!arguments.length)return a;a=[],c=new j;var e=-1,g=d.length,h;while(++e1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j9&&(f=c*3/Math.sqrt(f),g[h]=f*d,g[h+1]=f*e));h=-1;while(++h<=i)f=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),b.push([f||0,g[h]*f||0]);return b}function dh(a){return a.length<3?cP(a):a[0]+cV(a,dg(a))}function di(a){var b,c=-1,d=a.length,e,f;while(++c1){var d=ce(a.domain()),e,f=-1,g=b.length,h=(b[1]-b[0])/++c,i,j;while(++f0;)(j=+b[f]-i*h)>=d[0]&&e.push(j);for(--f,i=0;++id&&(c=b,d=e);return c}function d_(a){return a.reduce(ea,0)}function ea(a,b){return a+b[1]}function eb(a,b){return ec(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function ec(a,b){var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];while(++c<=b)f[c]=e*c+d;return f}function ed(a){return[d3.min(a),d3.max(a)]}function ee(a,b){return d3.rebind(a,b,"sort","children","value"),a.links=ei,a.nodes=function(b){return ej=!0,(a.nodes=a)(b)},a}function ef(a){return a.children}function eg(a){return a.value}function eh(a,b){return b.value-a.value}function ei(a){return d3.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function ek(a,b){return a.value-b.value}function el(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function em(a,b){a._pack_next=b,b._pack_prev=a}function en(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return e*e-c*c-d*d>.001}function eo(a){function l(a){b=Math.min(a.x-a.r,b),c=Math.max(a.x+a.r,c),d=Math.min(a.y-a.r,d),e=Math.max(a.y+a.r,e)}var b=Infinity,c=-Infinity,d=Infinity,e=-Infinity,f=a.length,g,h,i,j,k;a.forEach(ep),g=a[0],g.x=-g.r,g.y=0,l(g);if(f>1){h=a[1],h.x=h.r,h.y=0,l(h);if(f>2){i=a[2],et(g,h,i),l(i),el(g,i),g._pack_prev=i,el(i,h),h=g._pack_next;for(var m=3;m0&&(a=d)}return a}function eC(a,b){return a.x-b.x}function eD(a,b){return b.x-a.x}function eE(a,b){return a.depth-b.depth}function eF(a,b){function c(a,d){var e=a.children;if(e&&(i=e.length)){var f,g=null,h=-1,i;while(++h=0)f=d[e]._tree,f.prelim+=b,f.mod+=b,b+=f.shift+(c+=f.change)}function eH(a,b,c){a=a._tree,b=b._tree;var d=c/(b.number-a.number);a.change+=d,b.change-=d,b.shift+=c,b.prelim+=c,b.mod+=c}function eI(a,b,c){return a._tree.ancestor.parent==b.parent?a._tree.ancestor:c}function eJ(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function eK(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return e<0&&(c+=e/2,e=0),f<0&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function eL(a){return a.map(eM).join(",")}function eM(a){return/[",\n]/.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}function eO(a,b){return function(c){return c&&a.hasOwnProperty(c.type)?a[c.type](c):b}}function eP(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+ -2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function eQ(a,b){eR.hasOwnProperty(a.type)&&eR[a.type](a,b)}function eS(a,b){eQ(a.geometry,b)}function eT(a,b){for(var c=a.features,d=0,e=c.length;d0}function fg(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function fh(a,b,c,d){var e=a[0],f=b[0],g=c[0],h=d[0],i=a[1],j=b[1],k=c[1],l=d[1],m=e-g,n=f-e,o=h-g,p=i-k,q=j-i,r=l-k,s=(o*p-r*m)/(r*n-o*q);return[e+s*n,i+s*q]}function fj(a,b){var c={list:a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.yb.y?1:a.xb.x?1:0}),bottomSite:null},d={list:[],leftEnd:null,rightEnd:null,init:function(){d.leftEnd=d.createHalfEdge(null,"l"),d.rightEnd=d.createHalfEdge(null,"l"),d.leftEnd.r=d.rightEnd,d.rightEnd.l=d.leftEnd,d.list.unshift(d.leftEnd,d.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a,b.r=a.r,a.r.l=b,a.r=b},leftBound:function(a){var b=d.leftEnd;do b=b.r;while(b!=d.rightEnd&&e.rightOf(b,a));return b=b.l,b},del:function(a){a.l.r=a.r,a.r.l=a.l,a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[a.side]},rightRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[fi[a.side]]}},e={bisect:function(a,b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y,f=d>0?d:-d,g=e>0?e:-e;return c.c=a.x*d+a.y*e+(d*d+e*e)*.5,f>g?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/=e),c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(Math.abs(e)<1e-10)return null;var f=(c.c*d.b-d.c*c.b)/e,g=(d.c*c.a-c.c*d.a)/e,h=c.region.r,i=d.region.r,j,k;h.y=k.region.r.x;return l&&j.side==="l"||!l&&j.side==="r"?null:{x:f,y:g}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&a.side==="l")return 1;if(!e&&a.side==="r")return 0;if(c.a===1){var f=b.y-d.y,g=b.x-d.x,h=0,i=0;!e&&c.b<0||e&&c.b>=0?i=h=f>=c.b*g:(i=b.x+b.y*c.b>c.c,c.b<0&&(i=!i),i||(h=1));if(!h){var j=d.x-c.region.l.x;i=c.b*(g*g-f*f)m*m+n*n}return a.side==="l"?i:!i},endPoint:function(a,c,d){a.ep[c]=d;if(!a.ep[fi[c]])return;b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}},f={list:[],insert:function(a,b,c){a.vertex=b,a.ystar=b.y+c;for(var d=0,e=f.list,g=e.length;dh.ystar||a.ystar==h.ystar&&b.x>h.vertex.x)continue;break}e.splice(d,0,a)},del:function(a){for(var b=0,c=f.list,d=c.length;bo.y&&(p=n,n=o,o=p,t="r"),s=e.bisect(n,o),m=d.createHalfEdge(s,t),d.insert(k,m),e.endPoint(s,fi[t],r),q=e.intersect(k,m),q&&(f.del(k),f.insert(k,q,e.distance(q,n))),q=e.intersect(m,l),q&&f.insert(m,q,e.distance(q,n));else break}for(i=d.right(d.leftEnd);i!=d.rightEnd;i=d.right(i))b(i.edge)}function fk(){return{leaf:!0,nodes:[],point:null}}function fl(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=(c+e)*.5,h=(d+f)*.5,i=b.nodes;i[0]&&fl(a,i[0],c,d,g,h),i[1]&&fl(a,i[1],g,d,e,h),i[2]&&fl(a,i[2],c,h,g,f),i[3]&&fl(a,i[3],g,h,e,f)}}function fm(a){return{x:a[0],y:a[1]}}function fo(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function fq(a,b,c,d){var e,f,g=0,h=b.length,i=c.length;while(g=i)return-1;e=b.charCodeAt(g++);if(e==37){f=fw[b.charAt(g++)];if(!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function fx(a,b,c){return fz.test(b.substring(c,c+=3))?c:-1}function fy(a,b,c){fA.lastIndex=0;var d=fA.exec(b.substring(c,c+10));return d?c+=d[0].length:-1}function fC(a,b,c){var d=fD.get(b.substring(c,c+=3).toLowerCase());return d==null?-1:(a.m=d,c)}function fE(a,b,c){fF.lastIndex=0;var d=fF.exec(b.substring(c,c+12));return d?(a.m=fG.get(d[0].toLowerCase()),c+=d[0].length):-1}function fI(a,b,c){return fq(a,fv.c.toString(),b,c)}function fJ(a,b,c){return fq(a,fv.x.toString(),b,c)}function fK(a,b,c){return fq(a,fv.X.toString(),b,c)}function fL(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+4));return d?(a.y=+d[0],c+=d[0].length):-1}function fM(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.y=fN()+ +d[0],c+=d[0].length):-1}function fN(){return~~((new Date).getFullYear()/1e3)*1e3}function fO(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.m=d[0]-1,c+=d[0].length):-1}function fP(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.d=+d[0],c+=d[0].length):-1}function fQ(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.H=+d[0],c+=d[0].length):-1}function fR(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.M=+d[0],c+=d[0].length):-1}function fS(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+2));return d?(a.S=+d[0],c+=d[0].length):-1}function fT(a,b,c){fU.lastIndex=0;var d=fU.exec(b.substring(c,c+3));return d?(a.L=+d[0],c+=d[0].length):-1}function fV(a,b,c){var d=fW.get(b.substring(c,c+=2).toLowerCase());return d==null?-1:(a.p=d,c)}function fX(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=~~(Math.abs(b)/60),e=Math.abs(b)%60;return c+fr(d)+fr(e)}function fZ(a){return a.toISOString()}function f$(a,b,c){function d(b){var c=a(b),d=f(c,1);return b-c1)while(gb?1:a>=b?0:NaN},d3.descending=function(a,b){return ba?1:b>=a?0:NaN},d3.mean=function(a,b){var c=a.length,d,e=0,f=-1,g=0;if(arguments.length===1)while(++f1&&(a=a.map(b)),a=a.filter(r),a.length?d3.quantile(a.sort(d3.ascending),.5):undefined},d3.min=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++cf&&(e=f)}else{while(++cf&&(e=f)}return e},d3.max=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++ce&&(e=f)}else{while(++ce&&(e=f)}return e},d3.extent=function(a,b){var c=-1,d=a.length,e,f,g;if(arguments.length===1){while(++cf&&(e=f),gf&&(e=f),g1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}}},d3.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(arguments.length===1)while(++f>1;a.call(b,b[f],f)>1;c0&&(e=f);return e},d3.last=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c=b.length)return e?e.call(a,c):d?c.sort(d):c;var h=-1,i=c.length,k=b[g++],l,m,n=new j,o,p={};while(++h=b.length)return a;var e=[],f=c[d++],h;for(h in a)e.push({key:h,values:g(a[h],d)});return f&&e.sort(function(a,b){return f(a.key,b.key)}),e}var a={},b=[],c=[],d,e;return a.map=function(a){return f(a,0)},a.entries=function(a){return g(f(a,0),0)},a.key=function(c){return b.push(c),a},a.sortKeys=function(d){return c[b.length-1]=d,a},a.sortValues=function(b){return d=b,a},a.rollup=function(b){return e=b,a},a},d3.keys=function(a){var b=[];for(var c in a)b.push(c);return b},d3.values=function(a){var b=[];for(var c in a)b.push(a[c]);return b},d3.entries=function(a){var b=[];for(var c in a)b.push({key:c,value:a[c]});return b},d3.permute=function(a,b){var c=[],d=-1,e=b.length;while(++db)d.push(g/e);else while((g=a+c*++f)=200&&a<300||a===304?d:null)}},d.send(null)},d3.text=function(a,b,c){function d(a){c(a&&a.responseText)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)},d3.json=function(a,b){d3.text(a,"application/json",function(a){b(a?JSON.parse(a):null)})},d3.html=function(a,b){d3.text(a,"text/html",function(a){if(a!=null){var c=document.createRange();c.selectNode(document.body),a=c.createContextualFragment(a)}b(a)})},d3.xml=function(a,b,c){function d(a){c(a&&a.responseXML)}arguments.length<3&&(c=b,b=null),d3.xhr(a,b,d)};var y={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};d3.ns={prefix:y,qualify:function(a){var b=a.indexOf(":"),c=a;return b>=0&&(c=a.substring(0,b),a=a.substring(b+1)),y.hasOwnProperty(c)?{space:y[c],local:a}:a}},d3.dispatch=function(){var a=new z,b=-1,c=arguments.length;while(++b0&&(d=a.substring(c+1),a=a.substring(0,c)),arguments.length<2?this[a].on(d):this[a].on(d,b)},d3.format=function(a){var b=B.exec(a),c=b[1]||" ",d=b[3]||"",e=b[5],f=+b[6],g=b[7],h=b[8],i=b[9],j=1,k="",l=!1;h&&(h=+h.substring(1)),e&&(c="0",g&&(f-=Math.floor((f-1)/4)));switch(i){case"n":g=!0,i="g";break;case"%":j=100,k="%",i="f";break;case"p":j=100,k="%",i="r";break;case"d":l=!0,h=0;break;case"s":j=-1,i="r"}return i=="r"&&!h&&(i="g"),i=C.get(i)||E,function(a){if(l&&a%1)return"";var b=a<0&&(a=-a)?"−":d;if(j<0){var m=d3.formatPrefix(a,h);a=m.scale(a),k=m.symbol}else a*=j;a=i(a,h);if(e){var n=a.length+b.length;n=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,C=d3.map({g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return d3.round(a,b=D(a,b)).toFixed(Math.max(0,Math.min(20,b)))}}),G=["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(H);d3.formatPrefix=function(a,b){var c=0;return a&&(a<0&&(a*=-1),b&&(a=d3.round(a,D(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,Math.floor((c<=0?c+1:c-1)/3)*3))),G[8+c/3]};var I=R(2),J=R(3),K=function(){return Q},L=d3.map({linear:K,poly:R,quad:function(){return I},cubic:function(){return J},sin:function(){return S},exp:function(){return T},circle:function(){return U},elastic:V,back:W,bounce:function(){return X}}),M=d3.map({"in":Q,out:O,"in-out":P,"out-in":function(a){return P(O(a))}});d3.ease=function(a){var b=a.indexOf("-"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";return c=L.get(c)||K,d=M.get(d)||Q,N(d(c.apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.interpolate=function(a,b){var c=d3.interpolators.length,d;while(--c>=0&&!(d=d3.interpolators[c](a,b)));return d},d3.interpolateNumber=function(a,b){return b-=a,function(c){return a+b*c}},d3.interpolateRound=function(a,b){return b-=a,function(c){return Math.round(a+b*c)}},d3.interpolateString=function(a,b){var c,d,e,f=0,g=0,h=[],i=[],j,k;_.lastIndex=0;for(d=0;c=_.exec(b);++d)c.index&&h.push(b.substring(f,g=c.index)),i.push({i:h.length,x:c[0]}),h.push(null),f=_.lastIndex;f180?k+=360:k-j>180&&(j+=360),d.push({i:c.push(c.pop()+"rotate(",null,")")-2,x:d3.interpolateNumber(j,k)})):k&&c.push(c.pop()+"rotate("+k+")"),l!=m?d.push({i:c.push(c.pop()+"skewX(",null,")")-2,x:d3.interpolateNumber(l,m)}):m&&c.push(c.pop()+"skewX("+m+")"),n[0]!=o[0]||n[1]!=o[1]?(e=c.push(c.pop()+"scale(",null,",",null,")"),d.push({i:e-4,x:d3.interpolateNumber(n[0],o[0])},{i:e-2,x:d3.interpolateNumber(n[1],o[1])})):(o[0]!=1||o[1]!=1)&&c.push(c.pop()+"scale("+o+")"),e=d.length,function(a){var b=-1,f;while(++b180?f-=360:f<-180&&(f+=360),function(a){return bm(c+f*a,d+g*a,e+h*a).toString()}},d3.interpolateArray=function(a,b){var c=[],d=[],e=a.length,f=b.length,g=Math.min(a.length,b.length),h;for(h=0;h1){while(++e=0;)if(f=c[d])e&&e!==f.nextSibling&&e.parentNode.insertBefore(f,e),e=f;return this},bt.sort=function(a){a=bz.apply(this,arguments);for(var b=-1,c=this.length;++b0&&(a=a.substring(0,e)),arguments.length<2?(e=this.node()[d])&&e._:this.each(function(e,f){function i(a){var c=d3.event;d3.event=a;try{b.call(g,g.__data__,f)}finally{d3.event=c}}var g=this,h=g[d];h&&(g.removeEventListener(a,h,h.$),delete g[d]),b&&(g.addEventListener(a,g[d]=i,i.$=c),i._=b)})},bt.each=function(a){return bA(this,function(b,c,d){a.call(b,b.__data__,c,d)})},bt.call=function(a){return a.apply(this,(arguments[0]=this,arguments)),this},bt.empty=function(){return!this.node()},bt.node=function(a){for(var b=0,c=this.length;b=cF?e?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":e?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+e*m+","+e*n+"A"+e+","+e+" 0 "+j+",0 "+e*k+","+e*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0"+"Z"}var a=cG,b=cH,c=cI,d=cJ;return e.innerRadius=function(b){return arguments.length?(a=p(b),e):a},e.outerRadius=function(a){return arguments.length?(b=p(a),e):b},e.startAngle=function(a){return arguments.length?(c=p(a),e):c},e.endAngle=function(a){return arguments.length?(d=p(a),e):d},e.centroid=function(){var e=(a.apply(this,arguments)+b.apply(this,arguments))/2,f=(c.apply(this,arguments)+d.apply(this,arguments))/2+cE;return[Math.cos(f)*e,Math.sin(f)*e]},e};var cE=-Math.PI/2,cF=2*Math.PI-1e-6;d3.svg.line=function(){return cK(m)};var cN="linear",cO=d3.map({linear:cP,"step-before":cQ,"step-after":cR,basis:cX,"basis-open":cY,"basis-closed":cZ,bundle:c$,cardinal:cU,"cardinal-open":cS,"cardinal-closed":cT,monotone:dh}),da=[0,2/3,1/3,0],db=[0,1/3,2/3,0],dc=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var a=cK(di);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},cQ.reverse=cR,cR.reverse=cQ,d3.svg.area=function(){return dj(Object)},d3.svg.area.radial=function(){var a=dj(di);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},d3.svg.chord=function(){function f(c,d){var e=g(this,a,c,d),f=g(this,b,c,d);return"M"+e.p0+i(e.r,e.p1,e.a1-e.a0)+(h(e,f)?j(e.r,e.p1,e.r,e.p0):j(e.r,e.p1,f.r,f.p0)+i(f.r,f.p1,f.a1-f.a0)+j(f.r,f.p1,e.r,e.p0))+"Z"}function g(a,b,f,g){var h=b.call(a,f,g),i=c.call(a,h,g),j=d.call(a,h,g)+cE,k=e.call(a,h,g)+cE;return{r:i,a0:j,a1:k,p0:[i*Math.cos(j),i*Math.sin(j)],p1:[i*Math.cos(k),i*Math.sin(k)]}}function h(a,b){return a.a0==b.a0&&a.a1==b.a1}function i(a,b,c){return"A"+a+","+a+" 0 "+ +(c>Math.PI)+",1 "+b}function j(a,b,c,d){return"Q 0,0 "+d}var a=dk,b=dl,c=dm,d=cI,e=cJ;return f.radius=function(a){return arguments.length?(c=p(a),f):c},f.source=function(b){return arguments.length?(a=p(b),f):a},f.target=function(a){return arguments.length?(b=p(a),f):b},f.startAngle=function(a){return arguments.length?(d=p(a),f):d},f.endAngle=function(a){return arguments.length?(e=p(a),f):e},f},d3.svg.diagonal=function(){function d(d,e){var f=a.call(this,d,e),g=b.call(this,d,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(c),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var a=dk,b=dl,c=dq;return d.source=function(b){return arguments.length?(a=p(b),d):a},d.target=function(a){return arguments.length?(b=p(a),d):b},d.projection=function(a){return arguments.length?(c=a,d):c},d},d3.svg.diagonal +.radial=function(){var a=d3.svg.diagonal(),b=dq,c=a.projection;return a.projection=function(a){return arguments.length?c(dr(b=a)):b},a},d3.svg.mouse=d3.mouse,d3.svg.touches=d3.touches,d3.svg.symbol=function(){function c(c,d){return(dv.get(a.call(this,c,d))||du)(b.call(this,c,d))}var a=dt,b=ds;return c.type=function(b){return arguments.length?(a=p(b),c):a},c.size=function(a){return arguments.length?(b=p(a),c):b},c};var dv=d3.map({circle:du,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+ -3*b+","+ -b+"H"+ -b+"V"+ -3*b+"H"+b+"V"+ -b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+ -b+"V"+b+"H"+ -3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*dx)),c=b*dx;return"M0,"+ -b+"L"+c+",0"+" 0,"+b+" "+ -c+",0"+"Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+ -b+","+ -b+"L"+b+","+ -b+" "+b+","+b+" "+ -b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/dw),c=b*dw/2;return"M0,"+c+"L"+b+","+ -c+" "+ -b+","+ -c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/dw),c=b*dw/2;return"M0,"+ -c+"L"+b+","+c+" "+ -b+","+c+"Z"}});d3.svg.symbolTypes=dv.keys();var dw=Math.sqrt(3),dx=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function k(k){k.each(function(){var k=d3.select(this),l=h==null?a.ticks?a.ticks.apply(a,g):a.domain():h,m=i==null?a.tickFormat?a.tickFormat.apply(a,g):String:i,n=dA(a,l,j),o=k.selectAll(".minor").data(n,String),p=o.enter().insert("line","g").attr("class","tick minor").style("opacity",1e-6),q=d3.transition(o.exit()).style("opacity",1e-6).remove(),r=d3.transition(o).style("opacity",1),s=k.selectAll("g").data(l,String),t=s.enter().insert("g","path").style("opacity",1e-6),u=d3.transition(s.exit()).style("opacity",1e-6).remove(),v=d3.transition(s).style("opacity",1),w,x=cf(a),y=k.selectAll(".domain").data([0]),z=y.enter().append("path").attr("class","domain"),A=d3.transition(y),B=a.copy(),C=this.__chart__||B;this.__chart__=B,t.append("line").attr("class","tick"),t.append("text");var D=t.select("line"),E=v.select("line"),F=s.select("text").text(m),G=t.select("text"),H=v.select("text");switch(b){case"bottom":w=dy,p.attr("y2",d),r.attr("x2",0).attr("y2",d),D.attr("y2",c),G.attr("y",Math.max(c,0)+f),E.attr("x2",0).attr("y2",c),H.attr("x",0).attr("y",Math.max(c,0)+f),F.attr("dy",".71em").attr("text-anchor","middle"),A.attr("d","M"+x[0]+","+e+"V0H"+x[1]+"V"+e);break;case"top":w=dy,p.attr("y2",-d),r.attr("x2",0).attr("y2",-d),D.attr("y2",-c),G.attr("y",-(Math.max(c,0)+f)),E.attr("x2",0).attr("y2",-c),H.attr("x",0).attr("y",-(Math.max(c,0)+f)),F.attr("dy","0em").attr("text-anchor","middle"),A.attr("d","M"+x[0]+","+ -e+"V0H"+x[1]+"V"+ -e);break;case"left":w=dz,p.attr("x2",-d),r.attr("x2",-d).attr("y2",0),D.attr("x2",-c),G.attr("x",-(Math.max(c,0)+f)),E.attr("x2",-c).attr("y2",0),H.attr("x",-(Math.max(c,0)+f)).attr("y",0),F.attr("dy",".32em").attr("text-anchor","end"),A.attr("d","M"+ -e+","+x[0]+"H0V"+x[1]+"H"+ -e);break;case"right":w=dz,p.attr("x2",d),r.attr("x2",d).attr("y2",0),D.attr("x2",c),G.attr("x",Math.max(c,0)+f),E.attr("x2",c).attr("y2",0),H.attr("x",Math.max(c,0)+f).attr("y",0),F.attr("dy",".32em").attr("text-anchor","start"),A.attr("d","M"+e+","+x[0]+"H0V"+x[1]+"H"+e)}if(a.ticks)t.call(w,C),v.call(w,B),u.call(w,B),p.call(w,C),r.call(w,B),q.call(w,B);else{var I=B.rangeBand()/2,J=function(a){return B(a)+I};t.call(w,J),v.call(w,J)}})}var a=d3.scale.linear(),b="bottom",c=6,d=6,e=6,f=3,g=[10],h=null,i,j=0;return k.scale=function(b){return arguments.length?(a=b,k):a},k.orient=function(a){return arguments.length?(b=a,k):b},k.ticks=function(){return arguments.length?(g=arguments,k):g},k.tickValues=function(a){return arguments.length?(h=a,k):h},k.tickFormat=function(a){return arguments.length?(i=a,k):i},k.tickSize=function(a,b,f){if(!arguments.length)return c;var g=arguments.length-1;return c=+a,d=g>1?+b:c,e=g>0?+arguments[g]:c,k},k.tickPadding=function(a){return arguments.length?(f=+a,k):f},k.tickSubdivide=function(a){return arguments.length?(j=+a,k):j},k},d3.svg.brush=function(){function g(a){a.each(function(){var a=d3.select(this),e=a.selectAll(".background").data([0]),f=a.selectAll(".extent").data([0]),l=a.selectAll(".resize").data(d,String),m;a.style("pointer-events","all").on("mousedown.brush",k).on("touchstart.brush",k),e.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),f.enter().append("rect").attr("class","extent").style("cursor","move"),l.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return dB[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),l.style("display",g.empty()?"none":null),l.exit().remove(),b&&(m=cf(b),e.attr("x",m[0]).attr("width",m[1]-m[0]),i(a)),c&&(m=cf(c),e.attr("y",m[0]).attr("height",m[1]-m[0]),j(a)),h(a)})}function h(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+e[+/e$/.test(a)][0]+","+e[+/^s/.test(a)][1]+")"})}function i(a){a.select(".extent").attr("x",e[0][0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",e[1][0]-e[0][0])}function j(a){a.select(".extent").attr("y",e[0][1]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",e[1][1]-e[0][1])}function k(){function x(){var a=d3.event.changedTouches;return a?d3.touches(d,a)[0]:d3.mouse(d)}function y(){d3.event.keyCode==32&&(q||(r=null,s[0]-=e[1][0],s[1]-=e[1][1],q=2),Y())}function z(){d3.event.keyCode==32&&q==2&&(s[0]+=e[1][0],s[1]+=e[1][1],q=0,Y())}function A(){var a=x(),d=!1;t&&(a[0]+=t[0],a[1]+=t[1]),q||(d3.event.altKey?(r||(r=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]),s[0]=e[+(a[0]0?e=c:e=0:c>0&&(b.start({type:"start",alpha:e=c}),d3.timer(a.tick)),a):e},a.start=function(){function p(a,c){var d=t(b),e=-1,f=d.length,g;while(++ee&&(e=h),d.push(h)}for(g=0;g0){f=-1;while(++f=i[0]&&o<=i[1]&&(k=g[d3.bisect(j,o,1,m)-1],k.y+=n,k.push(e[f]))}return g}var a=!0,b=Number,c=ed,d=eb;return e.value=function(a){return arguments.length?(b=a,e):b},e.range=function(a){return arguments.length?(c=p(a),e):c},e.bins=function(a){return arguments.length?(d=typeof a=="number"?function(b){return ec(b,a)}:p(a),e):d},e.frequency=function(b){return arguments.length?(a=!!b,e):a},e},d3.layout.hierarchy=function(){function d(e,g,h){var i=b.call(f,e,g),j=ej?e:{data:e};j.depth=g,h.push(j);if(i&&(l=i.length)){var k=-1,l,m=j.children=[],n=0,o=g+1,p;while(++k0&&(eH(eI(g,a,d),a,m),i+=m,j+=m),k+=g._tree.mod,i+=e._tree.mod,l+=h._tree.mod,j+=f._tree.mod;g&&!eA(f)&&(f._tree.thread=g,f._tree.mod+=k-j),e&&!ez(h)&&(h._tree.thread=e,h._tree.mod+=i-l,d=a)}return d}var f=a.call(this,d,e),g=f[0];eF(g,function(a,b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}}),h(g),i(g,-g._tree.prelim);var k=eB(g,eD),l=eB(g,eC),m=eB(g,eE),n=k.x-b(k,l)/2,o=l.x+b(l,k)/2,p=m.depth||1;return eF(g,function(a){a.x=(a.x-n)/(o-n)*c[0],a.y=a.depth/p*c[1],delete a._tree}),f}var a=d3.layout.hierarchy().sort(null).value(null),b=ey,c=[1,1];return d.separation=function(a){return arguments.length?(b=a,d):b},d.size=function(a){return arguments.length?(c=a,d):c},ee(d,a)},d3.layout.treemap=function(){function i(a,b){var c=-1,d=a.length,e,f;while(++c0)d.push(g=f[o-1]),d.area+=g.area,(k=l(d,n))<=h?(f.pop(),h=k):(d.area-=d.pop().area,m(d,n,c,!1),n=Math.min(c.dx,c.dy),d.length=d.area=0,h=Infinity);d.length&&(m(d,n,c,!0),d.length=d.area=0),b.forEach(j)}}function k(a){var b=a.children;if(b&&b.length){var c=e(a),d=b.slice(),f,g=[];i(d,c.dx*c.dy/a.value),g.area=0;while(f=d.pop())g.push(f),g.area+=f.area,f.z!=null&&(m(g,f.z?c.dx:c.dy,c,!d.length),g.length=g.area=0);b.forEach(k)}}function l(a,b){var c=a.area,d,e=0,f=Infinity,g=-1,i=a.length;while(++ge&&(e=d)}return c*=c,b*=b,c?Math.max(b*e*h/c,c/(b*f*h)):Infinity}function m(a,c,d,e){var f=-1,g=a.length,h=d.x,i=d.y,j=c?b(a.area/c):0,k;if(c==d.dx){if(e||j>d.dy)j=d.dy;while(++fd.dx)j=d.dx;while(++f=a.length)return d;if(i)return i=!1,c;var b=f.lastIndex;if(a.charCodeAt(b)===34){var e=b;while(e++50?b:f<-140?c:g<21?d:a)(e)}var a=d3.geo.albers(),b=d3.geo.albers().origin([-160,60]).parallels([55,65]),c=d3.geo.albers().origin([-160,20]).parallels([8,18]),d=d3.geo.albers().origin([-60,10]).parallels([8,18]);return e.scale=function(f){return arguments.length?(a.scale(f),b.scale(f*.6),c.scale(f),d.scale(f*1.5),e.translate(a.translate())):a.scale()},e.translate=function(f){if(!arguments.length)return a.translate();var g=a.scale()/1e3,h=f[0],i=f[1];return a.translate(f),b.translate([h-400*g,i+170*g]),c.translate([h-190*g,i+200*g]),d.translate([h+580*g,i+430*g]),e},e.scale(a.scale())},d3.geo.bonne=function(){function g(g){var h=g[0]*eN-c,i=g[1]*eN-d;if(e){var j=f+e-i,k=h*Math.cos(i)/j;h=j*Math.sin(k),i=j*Math.cos(k)-f}else h*=Math.cos(i),i*=-1;return[a*h+b[0],a*i+b[1]]}var a=200,b=[480,250],c,d,e,f;return g.invert=function(d){var g=(d[0]-b[0])/a,h=(d[1]-b[1])/a;if(e){var i=f+h,j=Math.sqrt(g*g+i*i);h=f+e-j,g=c+j*Math.atan2(g,i)/Math.cos(h)}else h*=-1,g/=Math.cos(h);return[g/eN,h/eN]},g.parallel=function(a){return arguments.length?(f=1/Math.tan(e=a*eN),g):e/eN},g.origin=function(a){return arguments.length?(c=a[0]*eN,d=a[1]*eN,g):[c/eN,d/eN]},g.scale=function(b){return arguments.length?(a=+b,g):a},g.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],g):b},g.origin([0,0]).parallel(45)},d3.geo.equirectangular=function(){function c(c){var d=c[0]/360,e=-c[1]/360;return[a*d+b[0],a*e+b[1]]}var a=500,b=[480,250];return c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,-360*e]},c.scale=function(b){return arguments.length?(a=+b,c):a},c.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],c):b},c},d3.geo.mercator=function(){function c(c){var d=c[0]/360,e=-(Math.log(Math.tan(Math.PI/4+c[1]*eN/2))/eN)/360;return[a*d+b[0],a*Math.max(-0.5,Math.min(.5,e))+b[1]]}var a=500,b=[480,250];return c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,2*Math.atan(Math.exp(-360*e*eN))/eN-90]},c.scale=function(b){return arguments.length?(a=+b,c):a},c.translate=function(a){return arguments.length?(b=[+a[0],+a[1]],c):b},c},d3.geo.path=function(){function e(c,e){typeof a=="function"&&(b=eP(a.apply(this,arguments))),g(c);var f=d.length?d.join(""):null;return d=[],f}function f(a){return c(a).join(",")}function i(a){var b=l(a[0]),c=0,d=a.length;while(++c0){d.push("M");while(++h0){d.push("M");while(++kd&&(d=a),fe&&(e=f)}),[[b,c],[d,e]]};var eR={Feature:eS,FeatureCollection:eT,GeometryCollection:eU,LineString:eV,MultiLineString:eW,MultiPoint:eV,MultiPolygon:eX,Point:eY,Polygon:eZ};d3.geo.circle=function(){function e(){}function f(a){return d.distance(a)=k*k+l*l?d[f].index=-1:(d[m].index=-1,o=d[f].angle,m=f,n=g)):(o=d[f].angle,m=f,n=g);e.push(h);for(f=0,g=0;f<2;++g)d[g].index!==-1&&(e.push(d[g].index),f++);p=e.length;for(;g=0?(c=a.ep.r,d=a.ep.l):(c=a.ep.l,d=a.ep.r),a.a===1?(g=c?c.y:-1e6,e=a.c-a.b*g,h=d?d.y:1e6,f=a.c-a.b*h):(e=c?c.x:-1e6,g=a.c-a.a*e,f=d?d.x:1e6,h=a.c-a.a*f);var i=[e,g],j=[f,h];b[a.region.l.index].push(i,j),b[a.region.r.index].push(i,j)}),b.map(function(b,c){var d=a[c][0],e=a[c][1];return b.forEach(function(a){a.angle=Math.atan2(a[0]-d,a[1]-e)}),b.sort(function(a,b){return a.angle-b.angle}).filter(function(a,c){return!c||a.angle-b[c-1].angle>1e-10})})};var fi={l:"r",r:"l"};d3.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];return fj(a,function(c){b[c.region.l.index].push(a[c.region.r.index])}),b.forEach(function(b,d){var e=a[d],f=e[0],g=e[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-f,a[1]-g)}),b.sort(function(a,b){return a.angle-b.angle});for(var h=0,i=b.length-1;h=g,j=b.y>=h,l=(j<<1)+i;a.leaf=!1,a=a.nodes[l]||(a.nodes[l]=fk()),i?c=g:e=g,j?d=h:f=h,k(a,b,c,d,e,f)}var f,g=-1,h=a.length;h&&isNaN(a[0].x)&&(a=a.map(fm));if(arguments.length<5)if(arguments.length===3)e=d=c,c=b;else{b=c=Infinity,d=e=-Infinity;while(++gd&&(d=f.x),f.y>e&&(e=f.y);var i=d-b,j=e-c;i>j?e=c+i:d=b+j}var m=fk();return m.add=function(a){k(m,a,b,c,d,e)},m.visit=function(a){fl(a,m,b,c,d,e)},a.forEach(m.add),m},d3.time={};var fn=Date;fo.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){fp.setUTCDate.apply(this._,arguments)},setDay:function(){fp.setUTCDay.apply(this._,arguments)},setFullYear:function(){fp.setUTCFullYear.apply(this._,arguments)},setHours:function(){fp.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){fp.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){fp.setUTCMinutes.apply(this._,arguments)},setMonth:function(){fp.setUTCMonth.apply(this._,arguments)},setSeconds:function(){fp.setUTCSeconds.apply(this._,arguments)},setTime:function(){fp.setTime.apply(this._,arguments)}};var fp=Date.prototype;d3.time.format=function(a){function c(c){var d=[],e=-1,f=0,g,h;while(++e=12?"PM":"AM"},S:function(a){return fr(a.getSeconds())},U:function(a){return fr(d3.time.sundayOfYear(a))},w:function(a){return a.getDay()},W:function(a){return fr(d3.time.mondayOfYear(a))},x:d3.time.format("%m/%d/%y"),X:d3.time.format("%H:%M:%S"),y:function(a){return fr(a.getFullYear()%100)},Y:function(a){return ft(a.getFullYear()%1e4)},Z:fX,"%":function(a){return"%"}},fw={a:fx,A:fy,b:fC,B:fE,c:fI,d:fP,e:fP,H:fQ,I:fQ,L:fT,m:fO,M:fR,p:fV,S:fS,x:fJ,X:fK,y:fM,Y:fL},fz=/^(?:sun|mon|tue|wed|thu|fri|sat)/i,fA=/^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/i,fB=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],fD=d3.map({jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11}),fF=/^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig,fG=d3.map({january:0,february:1,march:2,april:3,may:4,june:5,july:6,august:7,september:8,october:9,november:10,december:11}),fH=["January","February","March","April","May","June","July","August","September","October","November","December"],fU=/\s*\d+/,fW=d3.map({am:0,pm:1});d3.time.format.utc=function(a){function c(a){try{fn=fo;var c=new fn;return c._=a,b(c)}finally{fn=Date}}var b=d3.time.format(a);return c.parse=function(a){try{fn=fo;var c=b.parse(a);return c&&c._}finally{fn=Date}},c.toString=b.toString,c};var fY=d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");d3.time.format.iso=Date.prototype.toISOString?fZ:fY,fZ.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},fZ.toString=fY.toString,d3.time.second=f$(function(a){return new fn(Math.floor(a/1e3)*1e3)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*1e3)},function(a){return a.getSeconds()}),d3.time.seconds=d3.time.second.range,d3.time.seconds.utc=d3.time.second.utc.range,d3.time.minute=f$(function(a){return new fn(Math.floor(a/6e4)*6e4)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*6e4)},function(a){return a.getMinutes()}),d3.time.minutes=d3.time.minute.range,d3.time.minutes.utc=d3.time.minute.utc.range,d3.time.hour=f$(function(a){var b=a.getTimezoneOffset()/60;return new fn((Math.floor(a/36e5-b)+b)*36e5)},function(a,b){a.setTime(a.getTime()+Math.floor(b)*36e5)},function(a){return a.getHours()}),d3.time.hours=d3.time.hour.range,d3.time.hours.utc=d3.time.hour.utc.range,d3.time.day=f$(function(a){return new fn(a.getFullYear(),a.getMonth(),a.getDate())},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),d3.time.days=d3.time.day.range,d3.time.days.utc=d3.time.day.utc.range,d3.time.dayOfYear=function(a){var b=d3.time.year(a);return Math.floor((a-b)/864e5-(a.getTimezoneOffset()-b.getTimezoneOffset())/1440)},fB.forEach(function(a,b){a=a.toLowerCase(),b=7-b;var c=d3.time[a]=f$(function(a){return(a=d3.time.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+Math.floor(b)*7)},function(a){var c=d3.time.year(a).getDay();return Math.floor((d3.time.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});d3.time[a+"s"]=c.range,d3.time[a+"s"].utc=c.utc.range,d3.time[a+"OfYear"]=function(a){var c=d3.time.year(a).getDay();return Math.floor((d3.time.dayOfYear(a)+(c+b)%7)/7)}}),d3.time.week=d3.time.sunday,d3.time.weeks=d3.time.sunday.range,d3.time.weeks.utc=d3.time.sunday.utc.range,d3.time.weekOfYear=d3.time.sundayOfYear,d3.time.month=f$(function(a){return new fn(a.getFullYear(),a.getMonth(),1)},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),d3.time.months=d3.time.month.range,d3.time.months.utc=d3.time.month.utc.range,d3.time.year=f$(function(a){return new fn(a.getFullYear(),0,1)},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),d3.time.years=d3.time.year.range,d3.time.years.utc=d3.time.year.utc.range;var gg=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],gh=[[d3.time.second,1],[d3.time.second,5],[d3.time.second,15],[d3.time.second,30],[d3.time.minute,1],[d3.time.minute,5],[d3.time.minute,15],[d3.time.minute,30],[d3.time.hour,1],[d3.time.hour,3],[d3.time.hour,6],[d3.time.hour,12],[d3.time.day,1],[d3.time.day,2],[d3.time.week,1],[d3.time.month,1],[d3.time.month,3],[d3.time.year,1]],gi=[[d3.time.format("%Y"),function(a){return!0}],[d3.time.format("%B"),function(a){return a.getMonth()}],[d3.time.format("%b %d"),function(a){return a.getDate()!=1}],[d3.time.format("%a %d"),function(a){return a.getDay()&&a.getDate()!=1}],[d3.time.format("%I %p"),function(a){return a.getHours()}],[d3.time.format("%I:%M"),function(a){return a.getMinutes()}],[d3.time.format(":%S"),function(a){return a.getSeconds()}],[d3.time.format(".%L"),function(a){return a.getMilliseconds()}]],gj=d3.scale.linear(),gk=gd(gi);gh.year=function(a,b){return gj.domain(a.map(gf)).ticks(b).map(ge)},d3.time.scale=function(){return ga(d3.scale.linear(),gh,gk)};var gl=gh.map(function(a){return[a[0].utc,a[1]]}),gm=[[d3.time.format.utc("%Y"),function(a){return!0}],[d3.time.format.utc("%B"),function(a){return a.getUTCMonth()}],[d3.time.format.utc("%b %d"),function(a){return a.getUTCDate()!=1}],[d3.time.format.utc("%a %d"),function(a){return a.getUTCDay()&&a.getUTCDate()!=1}],[d3.time.format.utc("%I %p"),function(a){return a.getUTCHours()}],[d3.time.format.utc("%I:%M"),function(a){return a.getUTCMinutes()}],[d3.time.format.utc(":%S"),function(a){return a.getUTCSeconds()}],[d3.time.format.utc(".%L"),function(a){return a.getUTCMilliseconds()}]],gn=gd(gm);gl.year=function(a,b){return gj.domain(a.map(gp)).ticks(b).map(go)},d3.time.scale.utc=function(){return ga(d3.scale.linear(),gl,gn)}})(); \ No newline at end of file diff --git a/v3/js/holistic.js b/v3/js/holistic.js new file mode 100644 index 000000000..b440696f4 --- /dev/null +++ b/v3/js/holistic.js @@ -0,0 +1,503 @@ +// Created by Irene Chen (2013) + +// look at js/pytutor.js for guide on refactoring object methods in JS! +function HolisticVisualizer(domRootID, dat, params) { + + var myViz = this; + myViz.domRoot = $('#' + domRootID); + myViz.domRootD3 = d3.select('#' + domRootID); + + myViz.domRoot.html('
      '); + myViz.domRoot = myViz.domRoot.find('div.HolisticVisualizer'); + myViz.domRootD3 = myViz.domRootD3.select('div.HolisticVisualizer'); + + var pregeneratedHTML = '
      \ +
      \ + \ + \ +
      \ + Connecting line\ +
      \ + Debug panel\ +
      \ + Function delimiters\ +
      \ +
      \ +
      \ +
      \ +
      \ +
      \ +

      Debug: step N/A

      \ +
      \ +
      \ +
      '; + + myViz.domRoot.html(pregeneratedHTML); + + /* + * ================================= + * DATASET + * ================================= + */ + // factorial + // var trace = {"code": "# dumb recursive factorial\ndef fact(n):\n if (n <= 1):\n return 1\n else:\n return n * fact(n - 1)\n\nprint(fact(6))\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 2, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}, {"frame_id": 6, "encoded_locals": {"n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f6", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 2, "event": "call"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}, {"frame_id": 6, "encoded_locals": {"n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f6", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}, {"frame_id": 6, "encoded_locals": {"n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f6", "ordered_varnames": ["n"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"n": 2}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n"]}, {"frame_id": 6, "encoded_locals": {"__return__": 1, "n": 1}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f6", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 4, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"n": 3}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n"]}, {"frame_id": 5, "encoded_locals": {"__return__": 2, "n": 2}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f5", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"n": 4}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n"]}, {"frame_id": 4, "encoded_locals": {"__return__": 6, "n": 3}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f4", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"n": 5}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n"]}, {"frame_id": 3, "encoded_locals": {"__return__": 24, "n": 4}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f3", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"n": 6}, "is_highlighted": false, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n"]}, {"frame_id": 2, "encoded_locals": {"__return__": 120, "n": 5}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f2", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "", "func_name": "fact", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": 720, "n": 6}, "is_highlighted": true, "is_parent": false, "func_name": "fact", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "fact_f1", "ordered_varnames": ["n", "__return__"]}], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["fact"], "stdout": "720\n", "func_name": "", "stack_to_render": [], "globals": {"fact": ["REF", 1]}, "heap": {"1": ["FUNCTION", "fact(n)", null]}, "line": 8, "event": "return"}]}; + // an example with lists (hello from opt) + // var trace = {"code": "x = [1, 2, 3]\ny = [4, 5, 6]\nz = y\ny = x\nx = z\n\nx = [1, 2, 3] # a different [1, 2, 3] list!\ny = x\nx.append(4)\ny.append(5)\nz = [1, 2, 3, 4, 5] # a different list!\nx.append(6)\ny.append(7)\ny = \"hello\"\n\n\ndef foo(lst):\n lst.append(\"hello\")\n bar(lst)\n\ndef bar(myLst):\n print(myLst)\n\nfoo(x)\nfoo(z)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["x"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"x": ["REF", 1]}, "heap": {"1": ["LIST", 1, 2, 3]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["x", "y"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 2], "x": ["REF", 1]}, "heap": {"1": ["LIST", 1, 2, 3], "2": ["LIST", 4, 5, 6]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 2], "x": ["REF", 1], "z": ["REF", 2]}, "heap": {"1": ["LIST", 1, 2, 3], "2": ["LIST", 4, 5, 6]}, "line": 4, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 1], "x": ["REF", 1], "z": ["REF", 2]}, "heap": {"1": ["LIST", 1, 2, 3], "2": ["LIST", 4, 5, 6]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 1], "x": ["REF", 2], "z": ["REF", 2]}, "heap": {"1": ["LIST", 1, 2, 3], "2": ["LIST", 4, 5, 6]}, "line": 7, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 1], "x": ["REF", 3], "z": ["REF", 2]}, "heap": {"1": ["LIST", 1, 2, 3], "2": ["LIST", 4, 5, 6], "3": ["LIST", 1, 2, 3]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 2]}, "heap": {"2": ["LIST", 4, 5, 6], "3": ["LIST", 1, 2, 3]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 2]}, "heap": {"2": ["LIST", 4, 5, 6], "3": ["LIST", 1, 2, 3, 4]}, "line": 10, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 2]}, "heap": {"2": ["LIST", 4, 5, 6], "3": ["LIST", 1, 2, 3, 4, 5]}, "line": 11, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5], "4": ["LIST", 1, 2, 3, 4, 5]}, "line": 12, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6], "4": ["LIST", 1, 2, 3, 4, 5]}, "line": 13, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": ["REF", 3], "x": ["REF", 3], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5]}, "line": 14, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": "hello", "x": ["REF", 3], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5]}, "line": 17, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null]}, "line": 21, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 24, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 17, "event": "call"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 18, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 19, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "bar", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}, {"frame_id": 2, "encoded_locals": {"myLst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f2", "ordered_varnames": ["myLst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 21, "event": "call"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "", "func_name": "bar", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}, {"frame_id": 2, "encoded_locals": {"myLst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f2", "ordered_varnames": ["myLst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 22, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "bar", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"lst": ["REF", 3]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst"]}, {"frame_id": 2, "encoded_locals": {"__return__": null, "myLst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f2", "ordered_varnames": ["myLst", "__return__"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 22, "event": "return"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": null, "lst": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["lst", "__return__"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 19, "event": "return"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "", "stack_to_render": [], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 25, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "foo", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 17, "event": "call"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "foo", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 18, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "foo", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 19, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "bar", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}, {"frame_id": 4, "encoded_locals": {"myLst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f4", "ordered_varnames": ["myLst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 21, "event": "call"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", "func_name": "bar", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}, {"frame_id": 4, "encoded_locals": {"myLst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f4", "ordered_varnames": ["myLst"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 22, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", "func_name": "bar", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"lst": ["REF", 4]}, "is_highlighted": false, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst"]}, {"frame_id": 4, "encoded_locals": {"__return__": null, "myLst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "bar", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "bar_f4", "ordered_varnames": ["myLst", "__return__"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 22, "event": "return"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", "func_name": "foo", "stack_to_render": [{"frame_id": 3, "encoded_locals": {"__return__": null, "lst": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f3", "ordered_varnames": ["lst", "__return__"]}], "globals": {"y": "hello", "x": ["REF", 3], "foo": ["REF", 5], "bar": ["REF", 6], "z": ["REF", 4]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 19, "event": "return"}, {"ordered_globals": ["x", "y", "z", "foo", "bar"], "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", "func_name": "", "stack_to_render": [], "globals": {"y": "hello", "x": ["REF", 3], "z": ["REF", 4], "bar": ["REF", 6], "foo": ["REF", 5]}, "heap": {"3": ["LIST", 1, 2, 3, 4, 5, 6, 7, "hello"], "4": ["LIST", 1, 2, 3, 4, 5, "hello"], "5": ["FUNCTION", "foo(lst)", null], "6": ["FUNCTION", "bar(myLst)", null]}, "line": 25, "event": "return"}]}; + // short example + // var trace = {"code": "x = 5\ny = float(2)\nz = \"hello\"\n\ndef foo(a):\n return a\n\nprint foo(x)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["x"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"x": 5}, "heap": {}, "line": 2, "event": "step_line"}, {"ordered_globals": ["x", "y"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": 2.0, "x": 5}, "heap": {}, "line": 3, "event": "step_line"}, {"ordered_globals": ["x", "y", "z"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": 2.0, "x": 5, "z": "hello"}, "heap": {}, "line": 5, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"y": 2.0, "x": 5, "foo": ["REF", 1], "z": "hello"}, "heap": {"1": ["FUNCTION", "foo(a)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"a": 5}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["a"]}], "globals": {"y": 2.0, "x": 5, "foo": ["REF", 1], "z": "hello"}, "heap": {"1": ["FUNCTION", "foo(a)", null]}, "line": 5, "event": "call"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"a": 5}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["a"]}], "globals": {"y": 2.0, "x": 5, "foo": ["REF", 1], "z": "hello"}, "heap": {"1": ["FUNCTION", "foo(a)", null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "", "func_name": "foo", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"a": 5, "__return__": 5}, "is_highlighted": true, "is_parent": false, "func_name": "foo", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "foo_f1", "ordered_varnames": ["a", "__return__"]}], "globals": {"y": 2.0, "x": 5, "foo": ["REF", 1], "z": "hello"}, "heap": {"1": ["FUNCTION", "foo(a)", null]}, "line": 6, "event": "return"}, {"ordered_globals": ["x", "y", "z", "foo"], "stdout": "5\n", "func_name": "", "stack_to_render": [], "globals": {"y": 2.0, "x": 5, "foo": ["REF", 1], "z": "hello"}, "heap": {"1": ["FUNCTION", "foo(a)", null]}, "line": 8, "event": "return"}]}; + + // fact + fib + + var trace = dat; + // build dataset from trace + var dataset = []; + for (var i = 0; i < trace.trace.length; i++) { + // we want indexing to start at 0 - offset of -1 + dataset.push(trace.trace[i].line - 1); + } + + /* + * ================================= + * CONSTANTS + * ================================= + */ + var NO_VALUE = '~'; + + var max_value = Math.max.apply(Math, dataset); + var num_rows = max_value + 1; + + // width and height + var padding = 17; + var col_w = 26; + var col_mid = col_w / 2; + var row_h = 24; + var row_mid = 12; + var w = dataset.length * col_w; + var h = num_rows * row_h; + var final_h = h + row_h; + + /* + * ================================= + * CODE TABLE + * ================================= + */ + var code = trace.code.split('\n'); + var table = myViz.domRoot.find('#code'); + + for (var i = 0; i < code.length; i++) { + table.append('
      ' + code[i] + '
      '); + } + + // adjust width and height of table + myViz.domRoot.find('table').attr('height',h); + myViz.domRoot.find('td').attr('height',row_h); + myViz.domRoot.find('tr').attr('height',row_h); + + /* + * ================================= + * VAR-SELECT MENU + * ================================= + */ + // globals + var global_group = document.createElement('optgroup'); + global_group.setAttribute('label', 'Globals'); + var globals = {}; + for (var i = 0; i < trace.trace.length; i++) { + for (var j = 0; j < trace.trace[i].ordered_globals.length; j++) { + var x = trace.trace[i].ordered_globals[j]; + if (!(x in globals)) { + var option = document.createElement('option'); + option.text = option.value = x; + global_group.appendChild(option, null); + globals[x] = 1; + } + } + } + myViz.domRoot.find('#var-select').append(global_group); + + // functions + var functions = {}; + for (var i = 0; i < trace.trace.length; i++) { + if (trace.trace[i].func_name != "") { + var func = trace.trace[i].func_name; + if (!(func in functions)) { + var function_group = document.createElement('optgroup'); + function_group.setAttribute('label', trace.trace[i].func_name); + functions[trace.trace[i].func_name] = 1; + var function_vars = {}; + + var n = trace.trace[i].stack_to_render.length; + for (var j = 0; j < trace.trace[i].stack_to_render[n-1].ordered_varnames.length; j++) { + var x = trace.trace[i].stack_to_render[n-1].ordered_varnames[j]; + if (!(x in function_vars) && + x != '__return__') { + var option = document.createElement('option'); + option.text = option.value = x; + function_group.appendChild(option, null); + function_vars[x] = 1; + } + } + myViz.domRoot.find('#var-select').append(function_group); + } + } + } + + /* + * ================================= + * SVG CONSTRUCTION + * ================================= + */ + // construct code trace svg + var d3image = myViz.domRootD3.select("#slider"); + var svg = d3image.append("svg:svg") + .attr("width", w) + .attr("height", final_h); + + // scales + var xScale = d3.scale.linear() + .domain([0, dataset.length-1]) + .range([col_mid, w - col_mid]); + // xScale(i) = (i * col_w) + col_mid + var yScale = d3.scale.linear() + .domain([0, max_value]) + .range([row_mid, h - row_mid]); + // yScale(d) = (d * row_h) + row_mid + + /* + * ================================= + * BACKGROUND GROUP + * ================================= + */ + // var backgroundGroup = svg.append("svg:g"); + // var rows = backgroundGroup.selectAll("rect") + // .data(d3.range(num_rows + 1)) + // .enter() + // .append("svg:rect"); + + // rows.attr("x", 0) + // .attr("y", function(d, i) { + // return (d * row_h); + // }) + // .attr("width", w) + // .attr("height", row_h) + // .attr("fill", function(d, i) { + // if (d % 2 == 0) { + // return "#D5F1F1"; + // } else { + // return "white"; + // } + // }); + + /* + * ================================= + * TEXT GROUP + * ================================= + */ + var textGroup = svg.append("svg:g"); + var values = textGroup.selectAll("text") + .data(dataset) + .enter() + .append("text"); + + values.text( + function(d, i) { + var val = myViz.domRoot.find('#var-select').val(); + if (val == 'default') { + return NO_VALUE; + } + + if (myViz.domRoot.find('#var-select').parent().attr('label') == 'globals') { + if (val in trace.trace[i].globals) { + return trace.trace[i].globals[val]; + } else { + return NO_VALUE; + } + } else { + var n = trace.trace[i].stack_to_render.length; + if (n > 0 && + val in trace.trace[i].stack_to_render[n-1].encoded_locals && + myViz.domRoot.find('#var-select').parent().attr('label') == trace.trace[i].stack_to_render[n-1].func_name) { + return trace.trace[i].stack_to_render[n-1].encoded_locals[val]; + } else { + return NO_VALUE; + } + } + }) + .attr("x", function(d, i) { + return xScale(i) - 4; + }) + .attr("y", function(d, i) { + return yScale(d) + 4; + }) + .style("visibility", "hidden"); + + /* + * ================================= + * CONNECTOR GROUP + * ================================= + */ + var connectorGroup = svg.append("svg:g"); + + // create a line function that can convert data[] into x and y points + var line = d3.svg.line() + .x(function(d,i) { + return xScale(i); + }) + .y(function(d) { + return yScale(d); + }); + + var connector = connectorGroup.append("svg:path") + .attr("d", line(dataset)) + .style("visibility", "visible"); + + /* + * ================================= + * DEFAULT GROUP + * ================================= + */ + var defaultGroup = svg.append("svg:g"); + var circles = defaultGroup.selectAll("circle") + .data(dataset) + .enter() + .append("circle"); + + circles.attr("cx", function(d, i) { + return xScale(i); + }) + .attr("cy", function(d, i) { + return yScale(d); + }) + .attr("r", "4") + .attr("fill", function(d, i) { + var red = 0 + i*7; + var green = 0; + var blue = 0; + return "rgb(" + red + "," + green + "," + blue + ")"; + }) + .style("visibility", "visible"); + + /* + * ================================= + * DELIMITER GROUP + * ================================= + */ + // build function call dataset (need to grab returns as well!) + var function_call_dataset = []; + for (var i = 0; i < dataset.length; i++) { + if (trace.trace[i].event == 'call') { + function_call_dataset.push([i, dataset[i], 'call']); + } else if (trace.trace[i].event == 'return') { + function_call_dataset.push([i, dataset[i], 'return']); + } + } + + var delimitingGroup = svg.append("svg:g"); + var delimiters = delimitingGroup.selectAll("line") + .data(function_call_dataset) + .enter() + .append("line"); + + delimiters.attr("x1", function(d, i) { + if (d[2] == 'call') { + return xScale(d[0]) - col_mid; + } else { + return xScale(d[0]) + col_mid; + } + }) + .attr("y1", function(d, i) { + return 0; + }) + .attr("x2", function(d, i) { + if (d[2] == 'call') { + return xScale(d[0]) - col_mid; + } else { + return xScale(d[0]) + col_mid; + } + }) + .attr("y2", function(d, i) { + return h; + }) + .style("visibility", "hidden") + .classed("delimiter", true); + + /* + * ================================= + * GUIDE GROUP + * ================================= + */ + var guideGroup = svg.append("svg:g"); + var v_guides = guideGroup.selectAll("line") + .data(dataset) + .enter() + .append("line"); + + v_guides.attr("x1", function(d, i) { + return xScale(i); + }) + .attr("y1", function(d, i) { + return 0; + }) + .attr("x2", function(d, i) { + return xScale(i); + }) + .attr("y2", function(d, i) { + return h; + }) + .style("visibility", "hidden") + .classed("v-guide", true); + + var v_hovers = guideGroup.selectAll("rect") + .data(dataset) + .enter() + .append("rect"); + + v_hovers.attr("x", function(d, i) { + return (i * col_w); + }) + .attr("y", function(d, i) { + return 0; + }) + .attr("width", function(d, i) { + return col_w; + }) + .attr("height", function(d, i) { + return h; + }) + .classed("v-hover", true) + .on("mouseover", + function(d, i) { + var row = table[0].rows[d]; + var cell = row.cells[0]; + myViz.domRoot.find('#code tr:eq(' + d + ') td:first').addClass("v-hover"); + v_guides.filter( + function(data, index) { + return index == i; + }) + .style("visibility", "visible"); + circles.filter( + function(data, index) { + return index == i; + }); + //.style("fill", "teal"); + }) + .on("mousemove", + function(d, i) { + var row = table[0].rows[d]; + var cell = row.cells[0]; + myViz.domRoot.find('#code tr:eq(' + d + ') td:first').addClass("v-hover"); + v_guides.filter( + function(data, index) { + return index == i; + }) + .style("visibility", "visible"); + }) + .on("mouseout", + function(d, i) { + var row = table[0].rows[d]; + var cell = row.cells[0]; + myViz.domRoot.find('#code tr:eq(' + d + ') td:first').removeClass("v-hover"); + v_guides.filter( + function(data, index) { + return index == i; + }) + .style("visibility", "hidden"); + circles.filter( + function(data, index) { + return index == i; + }); + //.style("fill", "black"); + }); + + /* + * ================================= + * AXIS GROUP + * ================================= + */ + var axisGroup = svg.append("svg:g"); + var xAxis = d3.svg.axis() + .scale(xScale) + .orient("bottom") + .ticks(dataset.length); + axisGroup.attr("class", "axis") + .attr("transform", "translate(0," + (final_h - padding) + ")") + .call(xAxis); + + /* + * ================================= + * EVENT HANDLERS + * ================================= + */ + myViz.domRoot.find("#var-select").change(function(e) { + if (myViz.domRoot.find("#var-select").val() !== 'default') { + circles.style("visibility", "hidden"); + v_hovers.style("visibility", "hidden"); + values.style("visibility", "visible"); + values.text(function(d, i) { + var val = myViz.domRoot.find('#var-select').val(); + if (val == 'default') { + return "~"; + } + if (myViz.domRoot.find(':selected').parent().attr('label') == 'Globals') { + if (val in trace.trace[i].globals) { + return trace.trace[i].globals[val]; + } else { + return "~"; + } + } else { + var n = trace.trace[i].stack_to_render.length; + if (n > 0 && + val in trace.trace[i].stack_to_render[n-1].encoded_locals && + myViz.domRoot.find(':selected').parent().attr('label') == trace.trace[i].stack_to_render[n-1].func_name) { + return trace.trace[i].stack_to_render[n-1].encoded_locals[val]; + } else { + return "~"; + } + } + }); + } else { + circles.style("visibility", "visible"); + v_hovers.style("visibility", "visible"); + values.style("visibility", "hidden"); + } + }); + + myViz.domRoot.find('#connector-select').click(function() { + if($(this).is(':checked')){ + connector.style("visibility", "visible"); + } else { + connector.style("visibility", "hidden"); + } + }); + + myViz.domRoot.find('#debug-panel').hide(); + myViz.domRoot.find('#debug-select').click(function() { + if($(this).is(':checked')){ + myViz.domRoot.find('#debug-panel').show(); + } else { + myViz.domRoot.find('#debug-panel').hide(); + } + }); + + myViz.domRoot.find('#delimiter-select').click(function() { + if($(this).is(':checked')){ + delimiters.style("visibility", "visible"); + } else { + delimiters.style("visibility", "hidden"); + } + }); + + var top_position = myViz.domRoot.find('#debug').scrollTop(); + v_hovers.on("click", function (d, i) { + myViz.domRoot.find('#debug-title').text(i); + myViz.domRoot.find('#debug').html("
      "+JSON.stringify(trace.trace[i], undefined, 2)+"
      "); + myViz.domRoot.find('#debug').scrollTop(top_position); + }) +} + +// stubs for unimplemented interface methods +HolisticVisualizer.prototype.updateOutput = function() {}; +HolisticVisualizer.prototype.redrawConnectors = function() {}; +HolisticVisualizer.prototype.destroyAllAnnotationBubbles = function() {}; diff --git a/v3/js/iframe-embed.js b/v3/js/iframe-embed.js new file mode 100644 index 000000000..357eacf4f --- /dev/null +++ b/v3/js/iframe-embed.js @@ -0,0 +1,175 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// Pre-reqs: +// - pytutor.js +// - jquery.ba-bbq.min.js +// - opt-frontend-common.js +// should all be imported BEFORE this file + + +var myVisualizer = null; // singleton ExecutionVisualizer instance + + +function NOP() {}; + + +$(document).ready(function() { + var queryStrOptions = getQueryStringOptions(); + + var preseededCode = queryStrOptions.preseededCode; + var pyState = queryStrOptions.pyState; + var verticalStackBool = (queryStrOptions.verticalStack == 'true'); + var heapPrimitivesBool = (queryStrOptions.heapPrimitives == 'true'); + var drawParentPointerBool = (queryStrOptions.drawParentPointers == 'true'); + var textRefsBool = (queryStrOptions.textRefs == 'true'); + var showOnlyOutputsBool = (queryStrOptions.showOnlyOutputs == 'true'); + var cumModeBool = (queryStrOptions.cumulativeState == 'true'); + + var codeDivWidth = undefined; + var cdw = $.bbq.getState('codeDivWidth'); + if (cdw) { + codeDivWidth = Number(cdw); + } + + var codeDivHeight = undefined; + var cdh = $.bbq.getState('codeDivHeight'); + if (cdh) { + codeDivHeight = Number(cdh); + } + + + var startingInstruction = queryStrOptions.preseededCurInstr; + if (!startingInstruction) { + startingInstruction = 0; + } + + var backend_script = null; + if (pyState == '2') { + backend_script = python2_backend_script; + } + else if (pyState == '3') { + backend_script = python3_backend_script; + } + else if (pyState == '2crazy') { + backend_script = python2crazy_backend_script; + } + + + // David Pritchard's code for resizeContainer option ... + var resizeContainer = ($.bbq.getState('resizeContainer') == 'true'); + + if (resizeContainer) { + function findContainer() { + var ifs = window.top.document.getElementsByTagName("iframe"); + for(var i = 0, len = ifs.length; i < len; i++) { + var f = ifs[i]; + var fDoc = f.contentDocument || f.contentWindow.document; + if(fDoc === document) { + return f; + } + } + } + + var container = findContainer(); + + function resizeContainerNow() { + $(container).height($("html").height()); + }; + } + + + // set up all options in a JS object + var backendOptionsObj = {cumulative_mode: cumModeBool, + heap_primitives: heapPrimitivesBool, + show_only_outputs: showOnlyOutputsBool, + py_crazy_mode: (pyState == '2crazy'), + origin: 'iframe-embed.js'}; + + var frontendOptionsObj = {startingInstruction: startingInstruction, + embeddedMode: true, + verticalStack: verticalStackBool, + disableHeapNesting: heapPrimitivesBool, + drawParentPointers: drawParentPointerBool, + textualMemoryLabels: textRefsBool, + showOnlyOutputs: showOnlyOutputsBool, + executeCodeWithRawInputFunc: executeCodeWithRawInput, + heightChangeCallback: (resizeContainer ? resizeContainerNow : NOP), + + // undocumented experimental modes: + pyCrazyMode: (pyState == '2crazy'), + highlightLines: typeof $.bbq.getState("highlightLines") !== "undefined", + codeDivWidth: codeDivWidth, + codeDivHeight: codeDivHeight, + } + + function executeCode(forceStartingInstr) { + if (forceStartingInstr) { + frontendOptionsObj.startingInstruction = forceStartingInstr; + } + executePythonCode(preseededCode, + backend_script, backendOptionsObj, + frontendOptionsObj, + 'vizDiv', + function() { // success + if (resizeContainer) + resizeContainerNow(); + }, + NOP); + } + + + function executeCodeFromScratch() { + // reset these globals + rawInputLst = []; + executeCode(); + } + + function executeCodeWithRawInput(rawInputStr, curInstr) { + // set some globals + rawInputLst.push(rawInputStr); + executeCode(curInstr); + } + + + // log a generic AJAX error handler + $(document).ajaxError(function() { + alert("Ugh, Online Python Tutor server error :("); + }); + + + // redraw connector arrows on window resize + $(window).resize(function() { + myVisualizer.redrawConnectors(); + }); + + + executeCodeFromScratch(); // finally, execute code and display visualization +}); + diff --git a/v3/js/index.js b/v3/js/index.js new file mode 100644 index 000000000..3747abd66 --- /dev/null +++ b/v3/js/index.js @@ -0,0 +1,16 @@ +var demoTrace = {"code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["listSum"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"__return__": 0, "numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"__return__": 3, "numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"__return__": 5, "numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": 6, "numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList", "total"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"total": 6, "myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "return"}]}; + + +$(document).ready(function() { + // for rounded corners + $(".activityPane").corner('15px'); + + var demoViz = new ExecutionVisualizer('demoViz', demoTrace, {embeddedMode: true, + editCodeBaseURL: 'visualize.html'}); + + // redraw connector arrows on window resize + $(window).resize(function() { + demoViz.redrawConnectors(); + }); +}); + diff --git a/v3/js/jquery-1.6.min.js b/v3/js/jquery-1.6.min.js new file mode 100644 index 000000000..c72011dfa --- /dev/null +++ b/v3/js/jquery-1.6.min.js @@ -0,0 +1,16 @@ +/*! + * jQuery JavaScript Library v1.6 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon May 2 13:50:00 2011 -0400 + */ +(function(a,b){function cw(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function ct(a){if(!ch[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ci||(ci=c.createElement("iframe"),ci.frameBorder=ci.width=ci.height=0),c.body.appendChild(ci);if(!cj||!ci.createElement)cj=(ci.contentWindow||ci.contentDocument).document,cj.write("");b=cj.createElement(a),cj.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ci)}ch[a]=d}return ch[a]}function cs(a,b){var c={};f.each(cn.concat.apply([],cn.slice(0,b)),function(){c[this]=a});return c}function cr(){co=b}function cq(){setTimeout(cr,0);return co=f.now()}function cg(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cf(){try{return new a.XMLHttpRequest}catch(b){}}function b_(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){name="data-"+c.replace(j,"$1-$2").toLowerCase(),d=a.getAttribute(name);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(e){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?g=[null,a,null]:g=i.exec(a);if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
      a",b=a.getElementsByTagName("*"),d=a.getElementsByTagName("a")[0];if(!b||!b.length||!d)return{};e=c.createElement("select"),f=e.appendChild(c.createElement("option")),g=a.getElementsByTagName("input")[0],i={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.55$/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:g.value==="on",optSelected:f.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},g.checked=!0,i.noCloneChecked=g.cloneNode(!0).checked,e.disabled=!0,i.optDisabled=!f.disabled;try{delete a.test}catch(r){i.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function click(){i.noCloneEvent=!1,a.detachEvent("onclick",click)}),a.cloneNode(!0).fireEvent("onclick")),g=c.createElement("input"),g.value="t",g.setAttribute("type","radio"),i.radioValue=g.value==="t",g.setAttribute("checked","checked"),a.appendChild(g),j=c.createDocumentFragment(),j.appendChild(a.firstChild),i.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",k=c.createElement("body"),l={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(p in l)k.style[p]=l[p];k.appendChild(a),c.documentElement.appendChild(k),i.appendChecked=g.checked,i.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,i.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
      ",i.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
      t
      ",m=a.getElementsByTagName("td"),q=m[0].offsetHeight===0,m[0].style.display="",m[1].style.display="none",i.reliableHiddenOffsets=q&&m[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(h=c.createElement("div"),h.style.width="0",h.style.marginRight="0",a.appendChild(h),i.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(h,null).marginRight,10)||0)===0),k.innerHTML="",c.documentElement.removeChild(k);if(a.attachEvent)for(p in{submit:1,change:1,focusin:1})o="on"+p,q=o in a,q||(a.setAttribute(o,"return;"),q=typeof a[o]=="function"),i[p+"Bubbles"]=q;return i}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[c]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||"set"in c&&c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b=a.selectedIndex,c=[],d=a.options,e=a.type==="select-one";if(b<0)return null;for(var g=e?b:0,h=e?b+1:d.length;g=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex",readonly:"readOnly"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c]||(v&&(f.nodeName(a,"form")||u.test(c))?v:b);if(d!==b){if(d===null||d===!1&&!t.test(c)){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;d===!0&&!t.test(c)&&(d=c),a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.getAttribute("value");a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),f.support.getSetAttribute||(f.attrFix=f.extend(f.attrFix,{"for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder"}),v=f.attrHooks.name=f.attrHooks.value=f.valHooks.button={get:function(a,c){var d;if(c==="value"&&!f.nodeName(a,"button"))return a.getAttribute(c);d=a.getAttributeNode(c);return d&&d.specified?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=Object.prototype.hasOwnProperty,x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function J(a){var c=a.target,d,e;if(!!y.test(c.nodeName)&&!c.readOnly){d=f._data(c,"_change_data"),e=I(c),(a.type!=="focusout"||c.type!=="radio")&&f._data(c,"_change_data",e);if(d===b||e===d)return;if(d!=null||e)a.type="change",a.liveFired=b,f.event.trigger(a,arguments[1],c)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){return a.nodeName.toLowerCase()==="input"&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!be[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[];for(var i=0,j;(j=a[i])!=null;i++){typeof j=="number"&&(j+="");if(!j)continue;if(typeof j=="string")if(!ba.test(j))j=b.createTextNode(j);else{j=j.replace(Z,"<$1>");var k=($.exec(j)||["",""])[1].toLowerCase(),l=be[k]||be._default,m=l[0],n=b.createElement("div");n.innerHTML=l[1]+j+l[2];while(m--)n=n.lastChild;if(!f.support.tbody){var o=_.test(j),p=k==="table"&&!o?n.firstChild&&n.firstChild.childNodes:l[1]===""&&!o?n.childNodes:[];for(var q=p.length-1;q>=0;--q)f.nodeName(p[q],"tbody")&&!p[q].childNodes.length&&p[q].parentNode.removeChild(p[q])}!f.support.leadingWhitespace&&Y.test(j)&&n.insertBefore(b.createTextNode(Y.exec(j)[0]),n.firstChild),j=n.childNodes}var r;if(!f.support.appendChecked)if(j[0]&&typeof (r=j.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV;try{bU=e.href}catch(bW){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bX(bS),ajaxTransport:bX(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?b$(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b_(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bY(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bY(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bZ(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var ca=f.now(),cb=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+ca++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cb.test(b.url)||e&&cb.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cb,l),b.url===j&&(e&&(k=k.replace(cb,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cc=a.ActiveXObject?function(){for(var a in ce)ce[a](0,1)}:!1,cd=0,ce;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cf()||cg()}:cf,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cc&&delete ce[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cd,cc&&(ce||(ce={},f(a).unload(cc)),ce[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ch={},ci,cj,ck=/^(?:toggle|show|hide)$/,cl=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cm,cn=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],co,cp=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cs("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a=f.timers,b=a.length;while(b--)a[b]()||a.splice(b,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cm),cm=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cu=/^t(?:able|d|h)$/i,cv=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cw(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cu.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="
      ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cv.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cv.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cw(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cw(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/v3/js/jquery-1.8.2.min.js b/v3/js/jquery-1.8.2.min.js new file mode 100644 index 000000000..f65cf1dc4 --- /dev/null +++ b/v3/js/jquery-1.8.2.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
      a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
      t
      ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
      ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
      ",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

      ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
      ","
      "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
      ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/v3/js/jquery-ui-1.8.21.custom.min.js b/v3/js/jquery-ui-1.8.21.custom.min.js new file mode 100644 index 000000000..e060fdcf4 --- /dev/null +++ b/v3/js/jquery-ui-1.8.21.custom.min.js @@ -0,0 +1,21 @@ +/*! jQuery UI - v1.8.21 - 2012-06-05 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.21",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.position.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.slider.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("
      ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.21"})})(jQuery);; \ No newline at end of file diff --git a/v3/js/jquery-ui-1.8.24.custom.min.js b/v3/js/jquery-ui-1.8.24.custom.min.js new file mode 100644 index 000000000..a684be39f --- /dev/null +++ b/v3/js/jquery-ui-1.8.24.custom.min.js @@ -0,0 +1,25 @@ +/*! jQuery UI - v1.8.24 - 2012-09-28 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.24",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.position.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.resizable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e
      ');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.24"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.24 - 2012-09-28 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.slider.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("
      ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.24"})})(jQuery);; \ No newline at end of file diff --git a/v3/js/jquery.ba-bbq.min.js b/v3/js/jquery.ba-bbq.min.js new file mode 100644 index 000000000..bcbf24834 --- /dev/null +++ b/v3/js/jquery.ba-bbq.min.js @@ -0,0 +1,18 @@ +/* + * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 + * http://benalman.com/projects/jquery-bbq-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this); \ No newline at end of file diff --git a/v3/js/jquery.corner.js b/v3/js/jquery.corner.js new file mode 100644 index 000000000..c416613fd --- /dev/null +++ b/v3/js/jquery.corner.js @@ -0,0 +1,249 @@ +/*! + * jQuery corner plugin: simple corner rounding + * Examples and documentation at: http://jquery.malsup.com/corner/ + * version 2.12 (23-MAY-2011) + * Requires jQuery v1.3.2 or later + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * Authors: Dave Methvin and Mike Alsup + */ + +/** + * corner() takes a single string argument: $('#myDiv').corner("effect corners width") + * + * effect: name of the effect to apply, such as round, bevel, notch, bite, etc (default is round). + * corners: one or more of: top, bottom, tr, tl, br, or bl. (default is all corners) + * width: width of the effect; in the case of rounded corners this is the radius. + * specify this value using the px suffix such as 10px (yes, it must be pixels). + */ +;(function($) { + +var style = document.createElement('div').style, + moz = style['MozBorderRadius'] !== undefined, + webkit = style['WebkitBorderRadius'] !== undefined, + radius = style['borderRadius'] !== undefined || style['BorderRadius'] !== undefined, + mode = document.documentMode || 0, + noBottomFold = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8), + + expr = $.browser.msie && (function() { + var div = document.createElement('div'); + try { div.style.setExpression('width','0+0'); div.style.removeExpression('width'); } + catch(e) { return false; } + return true; + })(); + +$.support = $.support || {}; +$.support.borderRadius = moz || webkit || radius; // so you can do: if (!$.support.borderRadius) $('#myDiv').corner(); + +function sz(el, p) { + return parseInt($.css(el,p))||0; +}; +function hex2(s) { + s = parseInt(s).toString(16); + return ( s.length < 2 ) ? '0'+s : s; +}; +function gpc(node) { + while(node) { + var v = $.css(node,'backgroundColor'), rgb; + if (v && v != 'transparent' && v != 'rgba(0, 0, 0, 0)') { + if (v.indexOf('rgb') >= 0) { + rgb = v.match(/\d+/g); + return '#'+ hex2(rgb[0]) + hex2(rgb[1]) + hex2(rgb[2]); + } + return v; + } + if (node.nodeName.toLowerCase() == 'html') + break; + node = node.parentNode; // keep walking if transparent + } + return '#ffffff'; +}; + +function getWidth(fx, i, width) { + switch(fx) { + case 'round': return Math.round(width*(1-Math.cos(Math.asin(i/width)))); + case 'cool': return Math.round(width*(1+Math.cos(Math.asin(i/width)))); + case 'sharp': return width-i; + case 'bite': return Math.round(width*(Math.cos(Math.asin((width-i-1)/width)))); + case 'slide': return Math.round(width*(Math.atan2(i,width/i))); + case 'jut': return Math.round(width*(Math.atan2(width,(width-i-1)))); + case 'curl': return Math.round(width*(Math.atan(i))); + case 'tear': return Math.round(width*(Math.cos(i))); + case 'wicked': return Math.round(width*(Math.tan(i))); + case 'long': return Math.round(width*(Math.sqrt(i))); + case 'sculpt': return Math.round(width*(Math.log((width-i-1),width))); + case 'dogfold': + case 'dog': return (i&1) ? (i+1) : width; + case 'dog2': return (i&2) ? (i+1) : width; + case 'dog3': return (i&3) ? (i+1) : width; + case 'fray': return (i%2)*width; + case 'notch': return width; + case 'bevelfold': + case 'bevel': return i+1; + case 'steep': return i/2 + 1; + case 'invsteep':return (width-i)/2+1; + } +}; + +$.fn.corner = function(options) { + // in 1.3+ we can fix mistakes with the ready state + if (this.length == 0) { + if (!$.isReady && this.selector) { + var s = this.selector, c = this.context; + $(function() { + $(s,c).corner(options); + }); + } + return this; + } + + return this.each(function(index){ + var $this = $(this), + // meta values override options + o = [$this.attr($.fn.corner.defaults.metaAttr) || '', options || ''].join(' ').toLowerCase(), + keep = /keep/.test(o), // keep borders? + cc = ((o.match(/cc:(#[0-9a-f]+)/)||[])[1]), // corner color + sc = ((o.match(/sc:(#[0-9a-f]+)/)||[])[1]), // strip color + width = parseInt((o.match(/(\d+)px/)||[])[1]) || 10, // corner width + re = /round|bevelfold|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dogfold|dog|invsteep|steep/, + fx = ((o.match(re)||['round'])[0]), + fold = /dogfold|bevelfold/.test(o), + edges = { T:0, B:1 }, + opts = { + TL: /top|tl|left/.test(o), TR: /top|tr|right/.test(o), + BL: /bottom|bl|left/.test(o), BR: /bottom|br|right/.test(o) + }, + // vars used in func later + strip, pad, cssHeight, j, bot, d, ds, bw, i, w, e, c, common, $horz; + + if ( !opts.TL && !opts.TR && !opts.BL && !opts.BR ) + opts = { TL:1, TR:1, BL:1, BR:1 }; + + // support native rounding + if ($.fn.corner.defaults.useNative && fx == 'round' && (radius || moz || webkit) && !cc && !sc) { + if (opts.TL) + $this.css(radius ? 'border-top-left-radius' : moz ? '-moz-border-radius-topleft' : '-webkit-border-top-left-radius', width + 'px'); + if (opts.TR) + $this.css(radius ? 'border-top-right-radius' : moz ? '-moz-border-radius-topright' : '-webkit-border-top-right-radius', width + 'px'); + if (opts.BL) + $this.css(radius ? 'border-bottom-left-radius' : moz ? '-moz-border-radius-bottomleft' : '-webkit-border-bottom-left-radius', width + 'px'); + if (opts.BR) + $this.css(radius ? 'border-bottom-right-radius' : moz ? '-moz-border-radius-bottomright' : '-webkit-border-bottom-right-radius', width + 'px'); + return; + } + + strip = document.createElement('div'); + $(strip).css({ + overflow: 'hidden', + height: '1px', + minHeight: '1px', + fontSize: '1px', + backgroundColor: sc || 'transparent', + borderStyle: 'solid' + }); + + pad = { + T: parseInt($.css(this,'paddingTop'))||0, R: parseInt($.css(this,'paddingRight'))||0, + B: parseInt($.css(this,'paddingBottom'))||0, L: parseInt($.css(this,'paddingLeft'))||0 + }; + + if (typeof this.style.zoom != undefined) this.style.zoom = 1; // force 'hasLayout' in IE + if (!keep) this.style.border = 'none'; + strip.style.borderColor = cc || gpc(this.parentNode); + cssHeight = $(this).outerHeight(); + + for (j in edges) { + bot = edges[j]; + // only add stips if needed + if ((bot && (opts.BL || opts.BR)) || (!bot && (opts.TL || opts.TR))) { + strip.style.borderStyle = 'none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none'); + d = document.createElement('div'); + $(d).addClass('jquery-corner'); + ds = d.style; + + bot ? this.appendChild(d) : this.insertBefore(d, this.firstChild); + + if (bot && cssHeight != 'auto') { + if ($.css(this,'position') == 'static') + this.style.position = 'relative'; + ds.position = 'absolute'; + ds.bottom = ds.left = ds.padding = ds.margin = '0'; + if (expr) + ds.setExpression('width', 'this.parentNode.offsetWidth'); + else + ds.width = '100%'; + } + else if (!bot && $.browser.msie) { + if ($.css(this,'position') == 'static') + this.style.position = 'relative'; + ds.position = 'absolute'; + ds.top = ds.left = ds.right = ds.padding = ds.margin = '0'; + + // fix ie6 problem when blocked element has a border width + if (expr) { + bw = sz(this,'borderLeftWidth') + sz(this,'borderRightWidth'); + ds.setExpression('width', 'this.parentNode.offsetWidth - '+bw+'+ "px"'); + } + else + ds.width = '100%'; + } + else { + ds.position = 'relative'; + ds.margin = !bot ? '-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px' : + (pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px'; + } + + for (i=0; i < width; i++) { + w = Math.max(0,getWidth(fx,i, width)); + e = strip.cloneNode(false); + e.style.borderWidth = '0 '+(opts[j+'R']?w:0)+'px 0 '+(opts[j+'L']?w:0)+'px'; + bot ? d.appendChild(e) : d.insertBefore(e, d.firstChild); + } + + if (fold && $.support.boxModel) { + if (bot && noBottomFold) continue; + for (c in opts) { + if (!opts[c]) continue; + if (bot && (c == 'TL' || c == 'TR')) continue; + if (!bot && (c == 'BL' || c == 'BR')) continue; + + common = { position: 'absolute', border: 'none', margin: 0, padding: 0, overflow: 'hidden', backgroundColor: strip.style.borderColor }; + $horz = $('
      ').css(common).css({ width: width + 'px', height: '1px' }); + switch(c) { + case 'TL': $horz.css({ bottom: 0, left: 0 }); break; + case 'TR': $horz.css({ bottom: 0, right: 0 }); break; + case 'BL': $horz.css({ top: 0, left: 0 }); break; + case 'BR': $horz.css({ top: 0, right: 0 }); break; + } + d.appendChild($horz[0]); + + var $vert = $('
      ').css(common).css({ top: 0, bottom: 0, width: '1px', height: width + 'px' }); + switch(c) { + case 'TL': $vert.css({ left: width }); break; + case 'TR': $vert.css({ right: width }); break; + case 'BL': $vert.css({ left: width }); break; + case 'BR': $vert.css({ right: width }); break; + } + d.appendChild($vert[0]); + } + } + } + } + }); +}; + +$.fn.uncorner = function() { + if (radius || moz || webkit) + this.css(radius ? 'border-radius' : moz ? '-moz-border-radius' : '-webkit-border-radius', 0); + $('div.jquery-corner', this).remove(); + return this; +}; + +// expose options +$.fn.corner.defaults = { + useNative: true, // true if plugin should attempt to use native browser support for border radius rounding + metaAttr: 'data-corner' // name of meta attribute to use for options +}; + +})(jQuery); diff --git a/v3/js/jquery.jsPlumb-1.3.10-all-min.js b/v3/js/jquery.jsPlumb-1.3.10-all-min.js new file mode 100644 index 000000000..3171abe1b --- /dev/null +++ b/v3/js/jquery.jsPlumb-1.3.10-all-min.js @@ -0,0 +1 @@ +jsPlumbUtil={isArray:function(b){return Object.prototype.toString.call(b)==="[object Array]"},isString:function(a){return typeof a==="string"},isObject:function(a){return Object.prototype.toString.call(a)==="[object Object]"},convertStyle:function(b,a){if("transparent"===b){return b}var g=b,f=function(h){return h.length==1?"0"+h:h},c=function(h){return f(Number(h).toString(16))},d=/(rgb[a]?\()(.*)(\))/;if(b.match(d)){var e=b.match(d)[2].split(",");g="#"+c(e[0])+c(e[1])+c(e[2]);if(!a&&e.length==4){g=g+c(e[3])}}return g},gradient:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];return(a[1]-b[1])/(a[0]-b[0])},normal:function(b,a){return -1/jsPlumbUtil.gradient(b,a)},lineLength:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];return Math.sqrt(Math.pow(a[1]-b[1],2)+Math.pow(a[0]-b[0],2))},segment:function(b,a){b=jsPlumbUtil.isArray(b)?b:[b.x,b.y];a=jsPlumbUtil.isArray(a)?a:[a.x,a.y];if(a[0]>b[0]){return(a[1]>b[1])?2:1}else{return(a[1]>b[1])?3:4}},intersects:function(f,e){var c=f.x,a=f.x+f.w,k=f.y,h=f.y+f.h,d=e.x,b=e.x+e.w,i=e.y,g=e.y+e.h;return((c<=d&&d<=a)&&(k<=i&&i<=h))||((c<=b&&b<=a)&&(k<=i&&i<=h))||((c<=d&&d<=a)&&(k<=g&&g<=h))||((c<=b&&d<=a)&&(k<=g&&g<=h))||((d<=c&&c<=b)&&(i<=k&&k<=g))||((d<=a&&a<=b)&&(i<=k&&k<=g))||((d<=c&&c<=b)&&(i<=h&&h<=g))||((d<=a&&c<=b)&&(i<=h&&h<=g))},segmentMultipliers:[null,[1,-1],[1,1],[-1,1],[-1,-1]],inverseSegmentMultipliers:[null,[-1,-1],[-1,1],[1,1],[1,-1]],pointOnLine:function(a,e,b){var d=jsPlumbUtil.gradient(a,e),i=jsPlumbUtil.segment(a,e),h=b>0?jsPlumbUtil.segmentMultipliers[i]:jsPlumbUtil.inverseSegmentMultipliers[i],c=Math.atan(d),f=Math.abs(b*Math.sin(c))*h[1],g=Math.abs(b*Math.cos(c))*h[0];return{x:a.x+g,y:a.y+f}},perpendicularLineTo:function(c,d,e){var b=jsPlumbUtil.gradient(c,d),f=Math.atan(-1/b),g=e/2*Math.sin(f),a=e/2*Math.cos(f);return[{x:d.x+a,y:d.y+g},{x:d.x-a,y:d.y-g}]},findWithFunction:function(b,d){if(b){for(var c=0;c-1){c.splice(b,1)}return b!=-1},remove:function(b,c){var a=jsPlumbUtil.indexOf(b,c);if(a>-1){b.splice(a,1)}return a!=-1},addWithFunction:function(c,b,a){if(jsPlumbUtil.findWithFunction(c,a)==-1){c.push(b)}},addToList:function(d,b,c){var a=d[b];if(a==null){a=[],d[b]=a}a.push(c);return a},EventGenerator:function(){var c={},b=this;var a=["ready"];this.bind=function(d,e){jsPlumbUtil.addToList(c,d,e);return b};this.fire=function(g,h,d){if(c[g]){for(var f=0;f';var K=L.firstChild;K.style.behavior="url(#default#VML)";b.vml=K?typeof K.adj=="object":true;L.parentNode.removeChild(L)}return b.vml};var i=jsPlumbUtil.findWithFunction,J=jsPlumbUtil.indexOf,D=jsPlumbUtil.removeWithFunction,m=jsPlumbUtil.remove,u=jsPlumbUtil.addWithFunction,l=jsPlumbUtil.addToList,n=jsPlumbUtil.isArray,C=jsPlumbUtil.isString,w=jsPlumbUtil.isObject;if(!window.console){window.console={time:function(){},timeEnd:function(){},group:function(){},groupEnd:function(){},log:function(){}}}var x=null,d=function(K,L){return p.CurrentLibrary.getAttribute(F(K),L)},f=function(L,M,K){p.CurrentLibrary.setAttribute(F(L),M,K)},B=function(L,K){p.CurrentLibrary.addClass(F(L),K)},k=function(L,K){return p.CurrentLibrary.hasClass(F(L),K)},o=function(L,K){p.CurrentLibrary.removeClass(F(L),K)},F=function(K){return p.CurrentLibrary.getElementObject(K)},t=function(K){return p.CurrentLibrary.getOffset(F(K))},a=function(K){return p.CurrentLibrary.getSize(F(K))},q=jsPlumbUtil.log,I=jsPlumbUtil.group,h=jsPlumbUtil.groupEnd,H=jsPlumbUtil.time,v=jsPlumbUtil.timeEnd,r=function(){return""+(new Date()).getTime()},E=function(Z){var U=this,aa=arguments,R=false,O=Z.parameters||{},M=U.idPrefix,W=M+(new Date()).getTime(),V=null,ab=null;U._jsPlumb=Z._jsPlumb;U.getId=function(){return W};U.tooltip=Z.tooltip;U.hoverClass=Z.hoverClass||U._jsPlumb.Defaults.HoverClass||p.Defaults.HoverClass;jsPlumbUtil.EventGenerator.apply(this);this.clone=function(){var ac=new Object();U.constructor.apply(ac,aa);return ac};this.getParameter=function(ac){return O[ac]},this.getParameters=function(){return O},this.setParameter=function(ac,ad){O[ac]=ad},this.setParameters=function(ac){O=ac},this.overlayPlacements=[];var N=Z.beforeDetach;this.isDetachAllowed=function(ac){var ad=U._jsPlumb.checkCondition("beforeDetach",ac);if(N){try{ad=N(ac)}catch(ae){q("jsPlumb: beforeDetach callback failed",ae)}}return ad};var Q=Z.beforeDrop;this.isDropAllowed=function(ah,ae,af,ac,ad){var ag=U._jsPlumb.checkCondition("beforeDrop",{sourceId:ah,targetId:ae,scope:af,connection:ac,dropEndpoint:ad});if(Q){try{ag=Q({sourceId:ah,targetId:ae,scope:af,connection:ac,dropEndpoint:ad})}catch(ai){q("jsPlumb: beforeDrop callback failed",ai)}}return ag};var X=function(){if(V&&ab){var ac={};p.extend(ac,V);p.extend(ac,ab);delete U.hoverPaintStyle;if(ac.gradient&&V.fillStyle){delete ac.gradient}ab=ac}};this.setPaintStyle=function(ac,ad){V=ac;U.paintStyleInUse=V;X();if(!ad){U.repaint()}};this.getPaintStyle=function(){return V};this.setHoverPaintStyle=function(ac,ad){ab=ac;X();if(!ad){U.repaint()}};this.getHoverPaintStyle=function(){return ab};this.setHover=function(ac,ae,ad){if(!U._jsPlumb.currentlyDragging&&!U._jsPlumb.isHoverSuspended()){R=ac;if(U.hoverClass!=null&&U.canvas!=null){if(ac){L.addClass(U.canvas,U.hoverClass)}else{L.removeClass(U.canvas,U.hoverClass)}}if(ab!=null){U.paintStyleInUse=ac?ab:V;ad=ad||r();U.repaint({timestamp:ad,recalc:false})}if(U.getAttachedElements&&!ae){Y(ac,r(),U)}}};this.isHover=function(){return R};var L=p.CurrentLibrary,K=["click","dblclick","mouseenter","mouseout","mousemove","mousedown","mouseup","contextmenu"],T={mouseout:"mouseexit"},P=function(ae,af,ad){var ac=T[ad]||ad;L.bind(ae,ad,function(ag){af.fire(ac,af,ag)})},S=function(ae,ad){var ac=T[ad]||ad;L.unbind(ae,ad)};this.attachListeners=function(ad,ae){for(var ac=0;ac1){for(var ac=0;ac=0?U.overlays[V]:null};this.getOverlays=function(){return U.overlays};this.hideOverlay=function(W){var V=U.getOverlay(W);if(V){V.hide()}};this.hideOverlays=function(){for(var V=0;V0){try{for(var bw=0;bw0?J(bJ,bI)!=-1:true},bA=(!bw&&bD.length>1)?{}:[],bG=function(bJ,bK){if(!bw&&bD.length>1){var bI=bA[bJ];if(bI==null){bI=[];bA[bJ]=bI}bI.push(bK)}else{bA.push(bK)}};for(var bz in aY){if(bx(bD,bz)){for(var by=0;by=4)?[bA[2],bA[3]]:[0,0],offsets:(bA.length==6)?[bA[4],bA[5]]:[0,0],elementId:bx};by=new aa(bz);by.clone=function(){return new aa(bz)}}}}}if(!by.id){by.id="anchor_"+ak()}return by};this.makeAnchors=function(by,bw,bv){var bz=[];for(var bx=0;bx0&&bP>=ap[bI]){console.log("target element "+bI+" is full.");return false}bn.currentlyDragging=false;var bZ=F(bD.getDragObject(arguments)),bO=d(bZ,"dragId"),bX=d(bZ,"originalScope"),bU=bf[bO],bM=bU.endpoints[0],bL=bw.endpoint?p.extend({},bw.endpoint):{};bM.anchor.locked=false;if(bX){bD.setDragScope(bZ,bX)}var bS=proxyComponent.isDropAllowed(bU.sourceId,K(bK),bU.scope,bU,null);if(bU.endpointsToDeleteOnDetach){if(bM===bU.endpointsToDeleteOnDetach[0]){bU.endpointsToDeleteOnDetach[0]=null}else{if(bM===bU.endpointsToDeleteOnDetach[1]){bU.endpointsToDeleteOnDetach[1]=null}}}if(bU.suspendedEndpoint){bU.targetId=bU.suspendedEndpoint.elementId;bU.target=bD.getElementObject(bU.suspendedEndpoint.elementId);bU.endpoints[1]=bU.suspendedEndpoint}if(bS){bM.detach(bU,false,true,false);var bY=aH[bI]||bn.addEndpoint(bK,bw);if(bw.uniqueEndpoint){aH[bI]=bY}bY._makeTargetCreator=true;if(bY.anchor.positionFinder!=null){var bV=bD.getUIPosition(arguments),bR=bD.getOffset(bK),bW=bD.getSize(bK),bQ=bY.anchor.positionFinder(bV,bR,bW,bY.anchor.constructorParams);bY.anchor.x=bQ[0];bY.anchor.y=bQ[1]}var bT=bn.connect({source:bM,target:bY,scope:bX,previousConnection:bU,container:bU.parent,deleteEndpointsOnDetach:bA,doNotFireConnectionEvent:bM.endpointWillMoveAfterConnection});if(bU.endpoints[1]._makeTargetCreator&&bU.endpoints[1].connections.length<2){bn.deleteEndpoint(bU.endpoints[1])}if(bA){bT.endpointsToDeleteOnDetach=[bM,bY]}bT.repaint()}else{if(bU.suspendedEndpoint){if(bM.isReattach){bU.setHover(false);bU.floatingAnchorIndex=null;bU.suspendedEndpoint.addConnection(bU);bn.repaint(bM.elementId)}else{bM.detach(bU,false,true,true,bN)}}}};var bJ=bD.dragEvents.drop;bH.scope=bH.scope||bE;bH[bJ]=am(bH[bJ],bG);bD.initDroppable(bK,bH,true)};by=aI(by);var bC=by.length&&by.constructor!=String?by:[by];for(var bB=0;bB0?bF[0]:null,bA=bF.length>0?0:-1,bE=this,bz=function(bI,bG,bM,bL,bH){var bK=bL[0]+(bI.x*bH[0]),bJ=bL[1]+(bI.y*bH[1]);return Math.sqrt(Math.pow(bG-bK,2)+Math.pow(bM-bJ,2))},bv=bw||function(bQ,bH,bI,bJ,bG){var bL=bI[0]+(bJ[0]/2),bK=bI[1]+(bJ[1]/2);var bN=-1,bP=Infinity;for(var bM=0;bM=by.left)||(bB.left<=by.right&&bB.right>=by.right)||(bB.left<=by.left&&bB.right>=by.right)||(by.left<=bB.left&&by.right>=bB.right)),bG=((bB.top<=by.top&&bB.bottom>=by.top)||(bB.top<=by.bottom&&bB.bottom>=by.bottom)||(bB.top<=by.top&&bB.bottom>=by.bottom)||(by.top<=bB.top&&by.bottom>=bB.bottom));if(!(bA||bG)){var bD=null,bx=false,bv=false,bC=null;if(by.left>bB.left&&by.top>bB.top){bD=["right","top"]}else{if(by.left>bB.left&&bB.top>by.top){bD=["top","left"]}else{if(by.leftbB.top){bD=["left","top"]}}}}return{orientation:T.DIAGONAL,a:bD,theta:bw,theta2:bz}}else{if(bA){return{orientation:T.HORIZONTAL,a:bB.topbv[0]?1:-1},Z=function(bv){return function(bx,bw){var by=true;if(bv){if(bx[0][0]bw[0][1]}}else{if(bx[0][0]>bw[0][0]){by=true}else{by=bx[0][1]>bw[0][1]}}return by===false?-1:1}},O=function(bw,bv){var by=bw[0][0]<0?-Math.PI-bw[0][0]:Math.PI-bw[0][0],bx=bv[0][0]<0?-Math.PI-bv[0][0]:Math.PI-bv[0][0];if(by>bx){return 1}else{return bw[0][1]>bv[0][1]?1:-1}},a0={top:a8,right:Z(true),bottom:Z(true),left:O},ao=function(bv,bw){return bv.sort(bw)},al=function(bw,bv){var by=ae[bw],bz=ah[bw],bx=function(bG,bN,bC,bF,bL,bK,bB){if(bF.length>0){var bJ=ao(bF,a0[bG]),bH=bG==="right"||bG==="top",bA=a2(bG,bN,bC,bJ,bL,bK,bH);var bO=function(bR,bQ){var bP=bo([bQ[0],bQ[1]],bR.canvas);ai[bR.id]=[bP[0],bP[1],bQ[2],bQ[3]];aJ[bR.id]=bB};for(var bD=0;bD0){var bF=bA.getOffset(bG);bw[bD][bI]={id:bI,offset:{left:bF.left-bJ.left,top:bF.top-bJ.top}}}}}};bC(bz)};this.endpointAdded=function(bB){var bF=p.CurrentLibrary,bI=document.body,bz=bn.getId(bB),bH=bF.getDOMElement(bB),bA=bH.parentNode,bD=bA==bI;bv[bz]=bv[bz]?bv[bz]+1:1;while(bA!=bI){var bE=bn.getId(bA);if(by[bE]){var bK=-1,bG=bF.getElementObject(bA),bC=bF.getOffset(bG);if(bw[bE][bz]==null){var bJ=p.CurrentLibrary.getOffset(bB);bw[bE][bz]={id:bz,offset:{left:bJ.left-bC.left,top:bJ.top-bC.top}}}break}bA=bA.parentNode}};this.endpointDeleted=function(bA){if(bv[bA.elementId]){bv[bA.elementId]--;if(bv[bA.elementId]<=0){for(var bz in bw){delete bw[bz][bA.elementId]}}}};this.getElementsForDraggable=function(bz){return bw[bz]};this.reset=function(){by={};bx=[];bw={};bv={}}};bn.dragManager=new aV();var ax=function(bN){var bG=this,bx=true;bG.idPrefix="_jsplumb_c_";bG.defaultLabelLocation=0.5;bG.defaultOverlayKeys=["Overlays","ConnectionOverlays"];this.parent=bN.parent;z.apply(this,arguments);this.isVisible=function(){return bx};this.setVisible=function(bP){bx=bP;bG[bP?"showOverlays":"hideOverlays"]();if(bG.connector&&bG.connector.canvas){bG.connector.canvas.style.display=bP?"block":"none"}};this.source=F(bN.source);this.target=F(bN.target);if(bN.sourceEndpoint){this.source=bN.sourceEndpoint.endpointWillMoveTo||bN.sourceEndpoint.getElement()}if(bN.targetEndpoint){this.target=bN.targetEndpoint.getElement()}bG.previousConnection=bN.previousConnection;var bD=bN.cost;bG.getCost=function(){return bD};bG.setCost=function(bP){bD=bP};var bB=bN.bidirectional===false?false:true;bG.isBidirectional=function(){return bB};this.sourceId=d(this.source,"id");this.targetId=d(this.target,"id");this.getAttachedElements=function(){return bG.endpoints};this.scope=bN.scope;this.endpoints=[];this.endpointStyles=[];var bM=function(bQ,bP){if(bQ){return bn.makeAnchor(bQ,bP,bn)}},bK=function(bP,bV,bQ,bS,bT,bR,bU){if(bP){bG.endpoints[bV]=bP;bP.addConnection(bG)}else{if(!bQ.endpoints){bQ.endpoints=[null,null]}var b1=bQ.endpoints[bV]||bQ.endpoint||bn.Defaults.Endpoints[bV]||p.Defaults.Endpoints[bV]||bn.Defaults.Endpoint||p.Defaults.Endpoint;if(!bQ.endpointStyles){bQ.endpointStyles=[null,null]}if(!bQ.endpointHoverStyles){bQ.endpointHoverStyles=[null,null]}var bZ=bQ.endpointStyles[bV]||bQ.endpointStyle||bn.Defaults.EndpointStyles[bV]||p.Defaults.EndpointStyles[bV]||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyle;if(bZ.fillStyle==null&&bR!=null){bZ.fillStyle=bR.strokeStyle}if(bZ.outlineColor==null&&bR!=null){bZ.outlineColor=bR.outlineColor}if(bZ.outlineWidth==null&&bR!=null){bZ.outlineWidth=bR.outlineWidth}var bY=bQ.endpointHoverStyles[bV]||bQ.endpointHoverStyle||bn.Defaults.EndpointHoverStyles[bV]||p.Defaults.EndpointHoverStyles[bV]||bn.Defaults.EndpointHoverStyle||p.Defaults.EndpointHoverStyle;if(bU!=null){if(bY==null){bY={}}if(bY.fillStyle==null){bY.fillStyle=bU.strokeStyle}}var bX=bQ.anchors?bQ.anchors[bV]:bQ.anchor?bQ.anchor:bM(bn.Defaults.Anchors[bV],bT)||bM(p.Defaults.Anchors[bV],bT)||bM(bn.Defaults.Anchor,bT)||bM(p.Defaults.Anchor,bT),b0=bQ.uuids?bQ.uuids[bV]:null,bW=aF({paintStyle:bZ,hoverPaintStyle:bY,endpoint:b1,connections:[bG],uuid:b0,anchor:bX,source:bS,scope:bQ.scope,container:bQ.container,reattach:bQ.reattach,detachable:bQ.detachable});bG.endpoints[bV]=bW;if(bQ.drawEndpoints===false){bW.setVisible(false,true,true)}return bW}};var bI=bK(bN.sourceEndpoint,0,bN,bG.source,bG.sourceId,bN.paintStyle,bN.hoverPaintStyle);if(bI){V(aT,this.sourceId,bI)}var by=((bG.sourceId==bG.targetId)&&bN.targetEndpoint==null)?bI:bN.targetEndpoint,bH=bK(by,1,bN,bG.target,bG.targetId,bN.paintStyle,bN.hoverPaintStyle);if(bH){V(aT,this.targetId,bH)}if(!this.scope){this.scope=this.endpoints[0].scope}if(bN.deleteEndpointsOnDetach){bG.endpointsToDeleteOnDetach=[bI,bH]}var bw=bn.Defaults.ConnectionsDetachable;if(bN.detachable===false){bw=false}if(bG.endpoints[0].connectionsDetachable===false){bw=false}if(bG.endpoints[1].connectionsDetachable===false){bw=false}if(bD==null){bD=bG.endpoints[0].getConnectionCost()}if(bN.bidirectional==null){bB=bG.endpoints[0].areConnectionsBidirectional()}this.isDetachable=function(){return bw===true};this.setDetachable=function(bP){bw=bP===true};var bO=p.extend({},this.endpoints[0].getParameters());p.extend(bO,this.endpoints[1].getParameters());p.extend(bO,bG.getParameters());bG.setParameters(bO);var bE=bG.setHover;bG.setHover=function(bP){bG.connector.setHover.apply(bG.connector,arguments);bE.apply(bG,arguments)};var bL=function(bP){if(x==null){bG.setHover(bP,false)}};this.setConnector=function(bP,bQ){if(bG.connector!=null){aX(bG.connector.getDisplayElements(),bG.parent)}var bR={_jsPlumb:bG._jsPlumb,parent:bN.parent,cssClass:bN.cssClass,container:bN.container,tooltip:bG.tooltip};if(C(bP)){this.connector=new p.Connectors[X][bP](bR)}else{if(n(bP)){this.connector=new p.Connectors[X][bP[0]](p.extend(bP[1],bR))}}bG.canvas=bG.connector.canvas;G(bG.connector,bG,bL);if(!bQ){bG.repaint()}};bG.setConnector(this.endpoints[0].connector||this.endpoints[1].connector||bN.connector||bn.Defaults.Connector||p.Defaults.Connector,true);this.setPaintStyle(this.endpoints[0].connectorStyle||this.endpoints[1].connectorStyle||bN.paintStyle||bn.Defaults.PaintStyle||p.Defaults.PaintStyle,true);this.setHoverPaintStyle(this.endpoints[0].connectorHoverStyle||this.endpoints[1].connectorHoverStyle||bN.hoverPaintStyle||bn.Defaults.HoverPaintStyle||p.Defaults.HoverPaintStyle,true);this.paintStyleInUse=this.getPaintStyle();this.moveParent=function(bS){var bR=p.CurrentLibrary,bQ=bR.getParent(bG.connector.canvas);if(bG.connector.bgCanvas){bR.removeElement(bG.connector.bgCanvas,bQ);bR.appendElement(bG.connector.bgCanvas,bS)}bR.removeElement(bG.connector.canvas,bQ);bR.appendElement(bG.connector.canvas,bS);for(var bP=0;bP0){bO.connections[0].setHover(b2,false)}else{bO.setHover(b2)}};G(bO.endpoint,bO,b1);this.setPaintStyle(b0.paintStyle||b0.style||bn.Defaults.EndpointStyle||p.Defaults.EndpointStyle,true);this.setHoverPaintStyle(b0.hoverPaintStyle||bn.Defaults.EndpointHoverStyle||p.Defaults.EndpointHoverStyle,true);this.paintStyleInUse=this.getPaintStyle();var bJ=this.getPaintStyle();this.connectorStyle=b0.connectorStyle;this.connectorHoverStyle=b0.connectorHoverStyle;this.connectorOverlays=b0.connectorOverlays;this.connector=b0.connector;this.connectorTooltip=b0.connectorTooltip;this.isSource=b0.isSource||false;this.isTarget=b0.isTarget||false;var bU=b0.maxConnections||bn.Defaults.MaxConnections;this.getAttachedElements=function(){return bO.connections};this.canvas=this.endpoint.canvas;this.connections=b0.connections||[];this.scope=b0.scope||Q;this.timestamp=null;bO.isReattach=b0.reattach||false;bO.connectionsDetachable=bn.Defaults.ConnectionsDetachable;if(b0.connectionsDetachable===false||b0.detachable===false){bO.connectionsDetachable=false}var bI=b0.dragAllowedWhenFull||true;this.computeAnchor=function(b2){return bO.anchor.compute(b2)};this.addConnection=function(b2){bO.connections.push(b2)};this.detach=function(b3,b8,b4,cb,b2){var ca=i(bO.connections,function(cd){return cd.id==b3.id}),b9=false;cb=(cb!==false);if(ca>=0){if(b4||b3._forceDetach||b3.isDetachable()||b3.isDetachAllowed(b3)){var cc=b3.endpoints[0]==bO?b3.endpoints[1]:b3.endpoints[0];if(b4||b3._forceDetach||(bO.isDetachAllowed(b3))){bO.connections.splice(ca,1);if(!b8){cc.detach(b3,true,b4);if(b3.endpointsToDeleteOnDetach){for(var b7=0;b70){bO.detach(bO.connections[0],false,true,b3,b2)}};this.detachFrom=function(b5,b4,b2){var b6=[];for(var b3=0;b3=0){bO.connections.splice(b2,1)}};this.getElement=function(){return bN};this.setElement=function(b5,b2){var b7=K(b5);D(aT[bO.elementId],function(b8){return b8.id==bO.id});bN=F(b5);bF=K(bN);bO.elementId=bF;var b6=aw({source:b7,container:b2}),b4=bz.getParent(bO.canvas);bz.removeElement(bO.canvas,b4);bz.appendElement(bO.canvas,b6);for(var b3=0;b30){var ce=bK(b5.elementWithPrecedence),cg=ce.endpoints[0]==bO?1:0,b7=cg==0?ce.sourceId:ce.targetId,cd=ah[b7],cf=ae[b7];b4.txy=[cd.left,cd.top];b4.twh=cf;b4.tElement=ce.endpoints[cg]}b8=bO.anchor.compute(b4)}var cc=bL.compute(b8,bO.anchor.getOrientation(bO),bO.paintStyleInUse,b6||bO.paintStyleInUse);bL.paint(cc,bO.paintStyleInUse,bO.anchor);bO.timestamp=cb;for(var b9=0;b90?t:m+t:t*m;return jsPlumbUtil.pointOnLine({x:h,y:g},{x:d,y:c},s)}}};this.gradientAtPoint=function(s){return e};this.pointAlongPathFrom=function(s,w,v){var u=r.pointOnPath(s,v),t=s==1?{x:h+((d-h)*10),y:g+((g-c)*10)}:{x:d,y:c};return jsPlumbUtil.pointOnLine(u,t,w)}};jsPlumb.Connectors.Bezier=function(v){var p=this;v=v||{};this.majorAnchor=v.curviness||150;this.minorAnchor=10;var t=null;this.type="Bezier";this._findControlPoint=function(H,w,C,x,A,F,y){var E=F.getOrientation(x),G=y.getOrientation(A),B=E[0]!=G[0]||E[1]==G[1],z=[],I=p.majorAnchor,D=p.minorAnchor;if(!B){if(E[0]==0){z.push(w[0]u){u=C}if(F<0){s+=F;var H=Math.abs(F);u+=H;q[0]+=H;f+=H;o+=H;l[0]+=H}var P=Math.min(e,n),N=Math.min(q[1],l[1]),B=Math.min(P,N),G=Math.max(e,n),E=Math.max(q[1],l[1]),y=Math.max(G,E);if(y>d){d=y}if(B<0){r+=B;var D=Math.abs(B);d+=D;q[1]+=D;e+=D;n+=D;l[1]+=D}if(L&&u0?0:1,w)}return w};this.pointOnPath=function(w,y){var x=c();w=m(x,w,y);return jsBezier.pointOnCurve(x,w)};this.gradientAtPoint=function(w,y){var x=c();w=m(x,w,y);return jsBezier.gradientAtPoint(x,w)};this.pointAlongPathFrom=function(w,z,y){var x=c();w=m(x,w,y);return jsBezier.pointAlongCurveFrom(x,w,z)}};jsPlumb.Connectors.Flowchart=function(v){this.type="Flowchart";v=v||{};var n=this,c=v.stub||v.minStubLength||30,f=jsPlumbUtil.isArray(c)?c[0]:c,k=jsPlumbUtil.isArray(c)?c[1]:c,p=v.gap||0,q=[],i=0,d=[],m=[],r=[],o,l,u=-Infinity,s=-Infinity,w=Infinity,t=Infinity,x=function(z,y,D,C){var B=0;for(var A=0;A0?A/i:(i+A)/i}var y=d.length-1,z=1;for(var B=0;B=A){y=B;z=(A-d[B][0])/m[B];break}}return{segment:q[y],proportion:z,index:y}};this.compute=function(W,ak,z,Q,av,K,U,P,ap,am){q=[];d=[];i=0;m=[];u=s=-Infinity;w=t=Infinity;o=ak[0]au?0:1,ae=[1,0][ac];N=[];aw=[];N[ac]=W[ac]>ak[ac]?-1:1;aw[ac]=W[ac]>ak[ac]?1:-1;N[ae]=0;aw[ae]=0}if(al(f+k),X=Math.abs(H-aq)>(f+k),ah=Z+((L-Z)/2),af=Y+((J-Y)/2),O=((N[0]*aw[0])+(N[1]*aw[1])),ab=O==-1,ad=O==0,C=O==1;aj-=E;ai-=D;r=[aj,ai,al,au,I,H,ar,aq];var ao=[];var S=N[0]==0?"y":"x",M=ab?"opposite":C?"orthogonal":"perpendicular",F=jsPlumbUtil.segment([I,H],[ar,aq]),ag=N[S=="x"?0:1]==-1,R={x:[null,4,3,2,1],y:[null,2,1,4,3]};if(ag){F=R[S][F]}g(Z,Y,I,H,ar,aq);var T=function(az,ay,y,ax){return az+(ay*((1-y)*ax)+Math.max(f,k))},G={oppositex:function(){if(z.elementId==Q.elementId){var y=Y+((1-av.y)*ap.height)+Math.max(f,k);return[[Z,y],[L,y]]}else{if(V&&(F==1||F==2)){return[[ah,H],[ah,aq]]}else{return[[Z,af],[L,af]]}}},orthogonalx:function(){if(F==1||F==2){return[[L,Y]]}else{return[[Z,J]]}},perpendicularx:function(){var y=(aq+H)/2;if((F==1&&aw[1]==1)||(F==2&&aw[1]==-1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[L,Y]]}else{return[[Z,Y],[Z,y],[L,y]]}}else{if((F==3&&aw[1]==-1)||(F==4&&aw[1]==1)){return[[Z,y],[L,y]]}else{if((F==3&&aw[1]==1)||(F==4&&aw[1]==-1)){return[[Z,J]]}else{if((F==1&&aw[1]==-1)||(F==2&&aw[1]==1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[ah,Y],[ah,J]]}else{return[[Z,J]]}}}}}},oppositey:function(){if(z.elementId==Q.elementId){var y=Z+((1-av.x)*ap.width)+Math.max(f,k);return[[y,Y],[y,J]]}else{if(X&&(F==2||F==3)){return[[I,af],[ar,af]]}else{return[[ah,Y],[ah,J]]}}},orthogonaly:function(){if(F==2||F==3){return[[Z,J]]}else{return[[L,Y]]}},perpendiculary:function(){var y=(ar+I)/2;if((F==2&&aw[0]==-1)||(F==3&&aw[0]==1)){if(Math.abs(ar-I)>Math.max(f,k)){return[[Z,J]]}else{return[[Z,af],[L,af]]}}else{if((F==1&&aw[0]==-1)||(F==4&&aw[0]==1)){var y=(ar+I)/2;return[[y,Y],[y,J]]}else{if((F==1&&aw[0]==1)||(F==4&&aw[0]==-1)){return[[L,Y]]}else{if((F==2&&aw[0]==1)||(F==3&&aw[0]==-1)){if(Math.abs(aq-H)>Math.max(f,k)){return[[Z,af],[L,af]]}else{return[[L,Y]]}}}}}}};var an=G[M+S]();if(an){for(var at=0;atr[3]){r[3]=s+(U*2)}if(u>r[2]){r[2]=u+(U*2)}return r};this.pointOnPath=function(y,z){return n.pointAlongPathFrom(y,0,z)};this.gradientAtPoint=function(y,z){return q[e(y,z)["index"]][4]};this.pointAlongPathFrom=function(F,y,E){var G=e(F,E),C=G.segment,z=G.proportion,B=q[G.index][5],A=q[G.index][4];var D={x:A==Infinity?C[2]:C[2]>C[0]?C[0]+((1-z)*B)-y:C[2]+(z*B)+y,y:A==0?C[3]:C[3]>C[1]?C[1]+((1-z)*B)-y:C[3]+(z*B)+y,segmentInfo:G};return D}};jsPlumb.Endpoints.Dot=function(d){this.type="Dot";var c=this;d=d||{};this.radius=d.radius||10;this.defaultOffset=0.5*this.radius;this.defaultInnerRadius=this.radius/3;this.compute=function(i,f,l,h){var g=l.radius||c.radius,e=i[0]-g,k=i[1]-g;return[e,k,g*2,g*2,g]}};jsPlumb.Endpoints.Rectangle=function(d){this.type="Rectangle";var c=this;d=d||{};this.width=d.width||20;this.height=d.height||20;this.compute=function(k,g,m,i){var h=m.width||c.width,f=m.height||c.height,e=k[0]-(h/2),l=k[1]-(f/2);return[e,l,h,f]}};var a=function(e){jsPlumb.DOMElementComponent.apply(this,arguments);var c=this;var d=[];this.getDisplayElements=function(){return d};this.appendDisplayElement=function(f){d.push(f)}};jsPlumb.Endpoints.Image=function(g){this.type="Image";a.apply(this,arguments);var l=this,f=false,e=g.width,d=g.height,i=null,c=g.endpoint;this.img=new Image();l.ready=false;this.img.onload=function(){l.ready=true;e=e||l.img.width;d=d||l.img.height;if(i){i(l)}};c.setImage=function(m,o){var n=m.constructor==String?m:m.src;i=o;l.img.src=m;if(l.canvas!=null){l.canvas.setAttribute("src",m)}};c.setImage(g.src||g.url,g.onload);this.compute=function(o,m,p,n){l.anchorPoint=o;if(l.ready){return[o[0]-e/2,o[1]-d/2,e,d]}else{return[0,0,0,0]}};l.canvas=document.createElement("img"),f=false;l.canvas.style.margin=0;l.canvas.style.padding=0;l.canvas.style.outline=0;l.canvas.style.position="absolute";var h=g.cssClass?" "+g.cssClass:"";l.canvas.className=jsPlumb.endpointClass+h;if(e){l.canvas.setAttribute("width",e)}if(d){l.canvas.setAttribute("height",d)}jsPlumb.appendElement(l.canvas,g.parent);l.attachListeners(l.canvas,l);var k=function(p,o,n){if(!f){l.canvas.setAttribute("src",l.img.src);l.appendDisplayElement(l.canvas);f=true}var m=l.anchorPoint[0]-(e/2),q=l.anchorPoint[1]-(d/2);jsPlumb.sizeCanvas(l.canvas,m,q,e,d)};this.paint=function(o,n,m){if(l.ready){k(o,n,m)}else{window.setTimeout(function(){l.paint(o,n,m)},200)}}};jsPlumb.Endpoints.Blank=function(d){var c=this;this.type="Blank";a.apply(this,arguments);this.compute=function(g,e,h,f){return[g[0],g[1],10,0]};c.canvas=document.createElement("div");c.canvas.style.display="block";c.canvas.style.width="1px";c.canvas.style.height="1px";c.canvas.style.background="transparent";c.canvas.style.position="absolute";c.canvas.className=c._jsPlumb.endpointClass;jsPlumb.appendElement(c.canvas,d.parent);this.paint=function(g,f,e){jsPlumb.sizeCanvas(c.canvas,g[0],g[1],g[2],g[3])}};jsPlumb.Endpoints.Triangle=function(c){this.type="Triangle";c=c||{};c.width=c.width||55;c.height=c.height||55;this.width=c.width;this.height=c.height;this.compute=function(i,f,l,h){var g=l.width||self.width,e=l.height||self.height,d=i[0]-(g/2),k=i[1]-(e/2);return[d,k,g,e]}};var b=function(e){var d=true,c=this;this.isAppendedAtTopLevel=true;this.component=e.component;this.loc=e.location==null?0.5:e.location;this.endpointLoc=e.endpointLocation==null?[0.5,0.5]:e.endpointLocation;this.setVisible=function(f){d=f;c.component.repaint()};this.isVisible=function(){return d};this.hide=function(){c.setVisible(false)};this.show=function(){c.setVisible(true)};this.incrementLocation=function(f){c.loc+=f;c.component.repaint()};this.setLocation=function(f){c.loc=f;c.component.repaint()};this.getLocation=function(){return c.loc}};jsPlumb.Overlays.Arrow=function(g){this.type="Arrow";b.apply(this,arguments);this.isAppendedAtTopLevel=false;g=g||{};var d=this;this.length=g.length||20;this.width=g.width||20;this.id=g.id;var f=(g.direction||1)<0?-1:1,e=g.paintStyle||{lineWidth:1},c=g.foldback||0.623;this.computeMaxSize=function(){return d.width*1.5};this.cleanup=function(){};this.draw=function(k,z,u){var o,v,h,p,n;if(k.pointAlongPathFrom){if(jsPlumbUtil.isString(d.loc)||d.loc>1||d.loc<0){var i=parseInt(d.loc);o=k.pointAlongPathFrom(i,f*d.length/2,true),v=k.pointOnPath(i,true),h=jsPlumbUtil.pointOnLine(o,v,d.length)}else{if(d.loc==1){o=k.pointOnPath(d.loc);v=k.pointAlongPathFrom(d.loc,-1);h=jsPlumbUtil.pointOnLine(o,v,d.length)}else{if(d.loc==0){h=k.pointOnPath(d.loc);v=k.pointAlongPathFrom(d.loc,1);o=jsPlumbUtil.pointOnLine(h,v,d.length)}else{o=k.pointAlongPathFrom(d.loc,f*d.length/2),v=k.pointOnPath(d.loc),h=jsPlumbUtil.pointOnLine(o,v,d.length)}}}p=jsPlumbUtil.perpendicularLineTo(o,h,d.width);n=jsPlumbUtil.pointOnLine(o,h,c*d.length);var y=Math.min(o.x,p[0].x,p[1].x),s=Math.max(o.x,p[0].x,p[1].x),x=Math.min(o.y,p[0].y,p[1].y),r=Math.max(o.y,p[0].y,p[1].y);var q={hxy:o,tail:p,cxy:n},t=e.strokeStyle||z.strokeStyle,w=e.fillStyle||z.strokeStyle,m=e.lineWidth||z.lineWidth;d.paint(k,q,m,t,w,u);return[y,s,x,r]}else{return[0,0,0,0]}}};jsPlumb.Overlays.PlainArrow=function(d){d=d||{};var c=jsPlumb.extend(d,{foldback:1});jsPlumb.Overlays.Arrow.call(this,c);this.type="PlainArrow"};jsPlumb.Overlays.Diamond=function(e){e=e||{};var c=e.length||40,d=jsPlumb.extend(e,{length:c/2,foldback:2});jsPlumb.Overlays.Arrow.call(this,d);this.type="Diamond"};jsPlumb.Overlays.Label=function(i){this.type="Label";jsPlumb.DOMElementComponent.apply(this,arguments);b.apply(this,arguments);this.labelStyle=i.labelStyle||jsPlumb.Defaults.LabelStyle;this.id=i.id;this.cachedDimensions=null;var e=i.label||"",c=this,f=false,k=document.createElement("div"),g=null;k.style.position="absolute";var d=i._jsPlumb.overlayClass+" "+(c.labelStyle.cssClass?c.labelStyle.cssClass:i.cssClass?i.cssClass:"");k.className=d;jsPlumb.appendElement(k,i.component.parent);jsPlumb.getId(k);c.attachListeners(k,c);c.canvas=k;var h=c.setVisible;c.setVisible=function(l){h(l);k.style.display=l?"block":"none"};this.getElement=function(){return k};this.cleanup=function(){if(k!=null){jsPlumb.CurrentLibrary.removeElement(k)}};this.setLabel=function(m){e=m;g=null;c.component.repaint()};this.getLabel=function(){return e};this.paint=function(l,n,m){if(!f){l.appendDisplayElement(k);c.attachListeners(k,l);f=true}k.style.left=(m[0]+n.minx)+"px";k.style.top=(m[1]+n.miny)+"px"};this.getTextDimensions=function(){if(typeof e=="function"){var l=e(c);k.innerHTML=l.replace(/\r\n/g,"
      ")}else{if(g==null){g=e;k.innerHTML=g.replace(/\r\n/g,"
      ")}}var n=jsPlumb.CurrentLibrary.getElementObject(k),m=jsPlumb.CurrentLibrary.getSize(n);return{width:m[0],height:m[1]}};this.computeMaxSize=function(l){var m=c.getTextDimensions(l);return m.width?Math.max(m.width,m.height)*1.5:0};this.draw=function(m,n,o){var s=c.getTextDimensions(m);if(s.width!=null){var p={x:0,y:0};if(m.pointOnPath){var q=c.loc,r=false;if(jsPlumbUtil.isString(c.loc)||c.loc<0||c.loc>1){q=parseInt(c.loc);r=true}p=m.pointOnPath(q,r)}else{var l=c.loc.constructor==Array?c.loc:c.endpointLoc;p={x:l[0]*o[2],y:l[1]*o[3]}}minx=p.x-(s.width/2),miny=p.y-(s.height/2);c.paint(m,{minx:minx,miny:miny,td:s,cxy:p},o);return[minx,minx+s.width,miny,miny+s.height]}else{return[0,0,0,0]}};this.reattachListeners=function(l){if(k){c.reattachListenersForElement(k,c,l)}}};jsPlumb.Overlays.GuideLines=function(){var c=this;c.length=50;c.lineWidth=5;this.type="GuideLines";b.apply(this,arguments);jsPlumb.jsPlumbUIComponent.apply(this,arguments);this.draw=function(e,l,k){var i=e.pointAlongPathFrom(c.loc,c.length/2),h=e.pointOnPath(c.loc),g=jsPlumbUtil.pointOnLine(i,h,c.length),f=jsPlumbUtil.perpendicularLineTo(i,g,40),d=jsPlumbUtil.perpendicularLineTo(g,i,20);c.paint(e,[i,g,f,d],c.lineWidth,"red",null,k);return[Math.min(i.x,g.x),Math.min(i.y,g.y),Math.max(i.x,g.x),Math.max(i.y,g.y)]};this.computeMaxSize=function(){return 50};this.cleanup=function(){}}})();(function(){var c=function(e,g,d,f){this.m=(f-g)/(d-e);this.b=-1*((this.m*e)-g);this.rectIntersect=function(q,p,s,o){var n=[];var k=(p-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*(q+s))+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}var k=((p+o)-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*q)+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}if(n.length==2){var m=(n[0][0]+n[1][0])/2,l=(n[0][1]+n[1][1])/2;n.push([m,l]);var i=m<=q+(s/2)?-1:1,r=l<=p+(o/2)?-1:1;n.push([i,r]);return n}return null}},a=function(e,g,d,f){if(e<=d&&f<=g){return 1}else{if(e<=d&&g<=f){return 2}else{if(d<=e&&f>=g){return 3}}}return 4},b=function(g,f,i,e,h,m,l,d,k){if(d<=k){return[g,f]}if(i==1){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==2){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}else{if(i==3){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==4){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}}}}};jsPlumb.Connectors.StateMachine=function(l){var u=this,n=null,o,m,g,e,p=[],d=l.curviness||10,k=l.margin||5,q=l.proximityLimit||80,f=l.orientation&&l.orientation=="clockwise",i=l.loopbackRadius||25,h=false,t=l.showLoopback!==false;this.type="StateMachine";l=l||{};this.compute=function(ad,H,W,I,ac,z,v,U){var Q=Math.abs(ad[0]-H[0]),Y=Math.abs(ad[1]-H[1]),S=0.45*Q,ab=0.45*Y;Q*=1.9;Y*=1.9;v=v||1;var O=Math.min(ad[0],H[0])-S,M=Math.min(ad[1],H[1])-ab;if(!t||(W.elementId!=I.elementId)){h=false;o=ad[0]0?0:1,v)}return v};this.pointOnPath=function(x,B){if(h){if(B){var y=Math.PI*2*i;x=x/y}if(x>0&&x<1){x=1-x}var z=(x*2*Math.PI)+(Math.PI/2),w=n[4]+(n[6]*Math.cos(z)),v=n[5]+(n[6]*Math.sin(z));return{x:w,y:v}}else{var A=r();x=s(A,x,B);return jsBezier.pointOnCurve(A,x)}};this.gradientAtPoint=function(v,y){if(h){if(y){var w=Math.PI*2*i;v=v/w}return Math.atan(v*2*Math.PI)}else{var x=r();v=s(x,v,y);return jsBezier.gradientAtPoint(x,v)}};this.pointAlongPathFrom=function(D,v,C){if(h){if(C){var B=Math.PI*2*i;D=D/B}if(D>0&&D<1){D=1-D}var B=2*Math.PI*n[6],w=v/B*2*Math.PI,z=(D*2*Math.PI)-w+(Math.PI/2),y=n[4]+(n[6]*Math.cos(z)),x=n[5]+(n[6]*Math.sin(z));return{x:y,y:x}}else{var A=r();D=s(A,D,C);return jsBezier.pointAlongCurveFrom(A,D,v)}}};jsPlumb.Connectors.canvas.StateMachine=function(f){f=f||{};var d=this,g=f.drawGuideline||true,e=f.avoidSelector;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.CanvasConnector.apply(this,arguments);this._paint=function(l){if(l.length==10){d.ctx.beginPath();d.ctx.moveTo(l[4],l[5]);d.ctx.bezierCurveTo(l[8],l[9],l[8],l[9],l[6],l[7]);d.ctx.stroke()}else{d.ctx.save();d.ctx.beginPath();var k=0,i=2*Math.PI,h=l[7];d.ctx.arc(l[4],l[5],l[6],0,i,h);d.ctx.stroke();d.ctx.closePath();d.ctx.restore()}};this.createGradient=function(i,h){return h.createLinearGradient(i[4],i[5],i[6],i[7])}};jsPlumb.Connectors.svg.StateMachine=function(){var d=this;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.SvgConnector.apply(this,arguments);this.getPath=function(e){if(e.length==10){return"M "+e[4]+" "+e[5]+" C "+e[8]+" "+e[9]+" "+e[8]+" "+e[9]+" "+e[6]+" "+e[7]}else{return"M"+(e[8]+4)+" "+e[9]+" A "+e[6]+" "+e[6]+" 0 1,0 "+(e[8]-4)+" "+e[9]}}};jsPlumb.Connectors.vml.StateMachine=function(){jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.VmlConnector.apply(this,arguments);var d=jsPlumb.vml.convertValue;this.getPath=function(k){if(k.length==10){return"m"+d(k[4])+","+d(k[5])+" c"+d(k[8])+","+d(k[9])+","+d(k[8])+","+d(k[9])+","+d(k[6])+","+d(k[7])+" e"}else{var h=d(k[8]-k[6]),g=d(k[9]-(2*k[6])),f=h+d(2*k[6]),e=g+d(2*k[6]),l=h+","+g+","+f+","+e;var i="ar "+l+","+d(k[8])+","+d(k[9])+","+d(k[8])+","+d(k[9])+" e";return i}}}})();(function(){var h={"stroke-linejoin":"joinstyle",joinstyle:"joinstyle",endcap:"endcap",miterlimit:"miterlimit"},c=null;if(document.createStyleSheet&&document.namespaces){var m=[".jsplumb_vml","jsplumb\\:textbox","jsplumb\\:oval","jsplumb\\:rect","jsplumb\\:stroke","jsplumb\\:shape","jsplumb\\:group"],g="behavior:url(#default#VML);position:absolute;";c=document.createStyleSheet();for(var r=0;r0&&C>0&&u=u&&w[2]<=C&&w[3]>=C)){return true}}var A=q.canvas.getContext("2d").getImageData(parseInt(u),parseInt(C),1,1);return A.data[0]!=0||A.data[1]!=0||A.data[2]!=0||A.data[3]!=0}return false};var p=false,o=false,t=null,s=false,r=function(v,u){return v!=null&&i(v,u)};this.mousemove=function(x){var z=n(x),w=f(x),v=document.elementFromPoint(w[0],w[1]),y=r(v,"_jsPlumb_overlay");var u=d==null&&(r(v,"_jsPlumb_endpoint")||r(v,"_jsPlumb_connector"));if(!p&&u&&q._over(x)){p=true;q.fire("mouseenter",q,x);return true}else{if(p&&(!q._over(x)||!u)&&!y){p=false;q.fire("mouseexit",q,x)}}q.fire("mousemove",q,x)};this.click=function(u){if(p&&q._over(u)&&!s){q.fire("click",q,u)}s=false};this.dblclick=function(u){if(p&&q._over(u)&&!s){q.fire("dblclick",q,u)}s=false};this.mousedown=function(u){if(q._over(u)&&!o){o=true;t=m(a(q.canvas));q.fire("mousedown",q,u)}};this.mouseup=function(u){o=false;q.fire("mouseup",q,u)};this.contextmenu=function(u){if(p&&q._over(u)&&!s){q.fire("contextmenu",q,u)}s=false}};var c=function(p){var o=document.createElement("canvas");p._jsPlumb.appendElement(o,p.parent);o.style.position="absolute";if(p["class"]){o.className=p["class"]}p._jsPlumb.getId(o,p.uuid);if(p.tooltip){o.setAttribute("title",p.tooltip)}return o};var l=function(p){k.apply(this,arguments);var o=[];this.getDisplayElements=function(){return o};this.appendDisplayElement=function(q){o.push(q)}};var h=jsPlumb.CanvasConnector=function(r){l.apply(this,arguments);var o=function(v,t){p.ctx.save();jsPlumb.extend(p.ctx,t);if(t.gradient){var u=p.createGradient(v,p.ctx);for(var s=0;s0?c[0].tagName:null},getUIPosition:function(c){if(c.length==1){ret={left:c[0].pageX,top:c[0].pageY}}else{var d=c[1],b=d.offset;ret=b||d.absolutePosition}return ret},hasClass:function(c,b){return c.hasClass(b)},initDraggable:function(c,b,d){b=b||{};b.helper=null;if(d){b.scope=b.scope||jsPlumb.Defaults.Scope}c.draggable(b)},initDroppable:function(c,b){b.scope=b.scope||jsPlumb.Defaults.Scope;c.droppable(b)},isAlreadyDraggable:function(b){b=jsPlumb.CurrentLibrary.getElementObject(b);return b.hasClass("ui-draggable")},isDragSupported:function(c,b){return c.draggable},isDropSupported:function(c,b){return c.droppable},removeClass:function(c,b){c=jsPlumb.CurrentLibrary.getElementObject(c);try{if(c[0].className.constructor==SVGAnimatedString){jsPlumb.util.svg.removeClass(c[0],b)}}catch(d){}c.removeClass(b)},removeElement:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).remove()},setAttribute:function(c,d,b){c.attr(d,b)},setDraggable:function(c,b){c.draggable("option","disabled",!b)},setDragScope:function(c,b){c.draggable("option","scope",b)},setOffset:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).offset(c)},trigger:function(d,e,b){var c=jQuery._data(jsPlumb.CurrentLibrary.getElementObject(d)[0],"handle");c(b)},unbind:function(b,c,d){b=jsPlumb.CurrentLibrary.getElementObject(b);b.unbind(c,d)}};a(document).ready(jsPlumb.init)})(jQuery);(function(){"undefined"==typeof Math.sgn&&(Math.sgn=function(l){return 0==l?0:0=64){x[0]=(C[0].x+C[B].x)/2;return 1}var p,u=C[0].y-C[B].y;y=C[B].x-C[0].x;q=C[0].x*C[B].y-C[B].x*C[0].y;s=max_distance_below=0;for(p=1;ps?s=r:r0?1:-1,r=null;n1){l.location=1}if(l.location<0){l.location=0}return i(m,l.location)},nearestPointOnCurve:function(m,l){var n=h(m,l);return{point:k(l,l.length-1,n.location,null,null),location:n.location}},pointOnCurve:c,pointAlongCurveFrom:function(m,l,n){return b(m,l,n).point},perpendicularToCurveAt:function(m,l,n,o){l=b(m,l,o==null?0:o);m=i(m,l.location);o=Math.atan(-1/m);m=n/2*Math.sin(o);n=n/2*Math.cos(o);return[{x:l.point.x+n,y:l.point.y+m},{x:l.point.x-n,y:l.point.y-m}]},locationAlongCurveFrom:function(m,l,n){return b(m,l,n).location}}})(); \ No newline at end of file diff --git a/v3/js/jquery.jsPlumb-1.3.15-all-min.js b/v3/js/jquery.jsPlumb-1.3.15-all-min.js new file mode 100644 index 000000000..3abdf47c9 --- /dev/null +++ b/v3/js/jquery.jsPlumb-1.3.15-all-min.js @@ -0,0 +1 @@ +jsPlumbUtil={isArray:function(b){return Object.prototype.toString.call(b)==="[object Array]"},isString:function(a){return typeof a==="string"},isBoolean:function(a){return typeof a==="boolean"},isObject:function(a){return Object.prototype.toString.call(a)==="[object Object]"},isDate:function(a){return Object.prototype.toString.call(a)==="[object Date]"},isFunction:function(a){return Object.prototype.toString.call(a)==="[object Function]"},clone:function(d){if(this.isString(d)){return new String(d)}else{if(this.isBoolean(d)){return new Boolean(d)}else{if(this.isDate(d)){return new Date(d.getTime())}else{if(this.isFunction(d)){return d}else{if(this.isArray(d)){var c=[];for(var e=0;eb[0]){return(a[1]>b[1])?2:1}else{return(a[1]>b[1])?3:4}},intersects:function(f,e){var c=f.x,a=f.x+f.w,k=f.y,h=f.y+f.h,d=e.x,b=e.x+e.w,i=e.y,g=e.y+e.h;return((c<=d&&d<=a)&&(k<=i&&i<=h))||((c<=b&&b<=a)&&(k<=i&&i<=h))||((c<=d&&d<=a)&&(k<=g&&g<=h))||((c<=b&&d<=a)&&(k<=g&&g<=h))||((d<=c&&c<=b)&&(i<=k&&k<=g))||((d<=a&&a<=b)&&(i<=k&&k<=g))||((d<=c&&c<=b)&&(i<=h&&h<=g))||((d<=a&&c<=b)&&(i<=h&&h<=g))},segmentMultipliers:[null,[1,-1],[1,1],[-1,1],[-1,-1]],inverseSegmentMultipliers:[null,[-1,-1],[-1,1],[1,1],[1,-1]],pointOnLine:function(a,e,b){var d=jsPlumbUtil.gradient(a,e),i=jsPlumbUtil.segment(a,e),h=b>0?jsPlumbUtil.segmentMultipliers[i]:jsPlumbUtil.inverseSegmentMultipliers[i],c=Math.atan(d),f=Math.abs(b*Math.sin(c))*h[1],g=Math.abs(b*Math.cos(c))*h[0];return{x:a.x+g,y:a.y+f}},perpendicularLineTo:function(c,d,e){var b=jsPlumbUtil.gradient(c,d),f=Math.atan(-1/b),g=e/2*Math.sin(f),a=e/2*Math.cos(f);return[{x:d.x+a,y:d.y+g},{x:d.x-a,y:d.y-g}]},findWithFunction:function(b,d){if(b){for(var c=0;c-1){c.splice(b,1)}return b!=-1},remove:function(b,c){var a=jsPlumbUtil.indexOf(b,c);if(a>-1){b.splice(a,1)}return a!=-1},addWithFunction:function(c,b,a){if(jsPlumbUtil.findWithFunction(c,a)==-1){c.push(b)}},addToList:function(d,b,c){var a=d[b];if(a==null){a=[],d[b]=a}a.push(c);return a},EventGenerator:function(){var c={},b=this;var a=["ready"];this.bind=function(d,e){jsPlumbUtil.addToList(c,d,e);return b};this.fire=function(g,h,d){if(c[g]){for(var f=0;f';var e=f.firstChild;e.style.behavior="url(#default#VML)";d.vml=e?typeof e.adj=="object":true;f.parentNode.removeChild(f)}return d.vml};var c=function(i){var h={},g=[],f={},e={};this.register=function(n){var m=jsPlumb.CurrentLibrary;n=m.getElementObject(n);var p=i.getId(n),l=m.getDOMElement(n),k=m.getOffset(n);if(!h[p]){h[p]=n;g.push(n);f[p]={}}var o=function(u,q){if(u){for(var r=0;r0){var s=m.getOffset(t);f[p][v]={id:v,offset:{left:s.left-k.left,top:s.top-k.top}}}o(u.childNodes[r])}}}};o(l)};this.endpointAdded=function(m){var r=jsPlumb.CurrentLibrary,u=document.body,k=i.getId(m),t=r.getDOMElement(m),l=t.parentNode,o=l==u;e[k]=e[k]?e[k]+1:1;while(l!=u){var q=i.getId(l,null,true);if(q&&h[q]){var w=-1,s=r.getElementObject(l),n=r.getOffset(s);if(f[q][k]==null){var v=jsPlumb.CurrentLibrary.getOffset(m);f[q][k]={id:k,offset:{left:v.left-n.left,top:v.top-n.top}}}break}l=l.parentNode}};this.endpointDeleted=function(l){if(e[l.elementId]){e[l.elementId]--;if(e[l.elementId]<=0){for(var k in f){delete f[k][l.elementId]}}}};this.getElementsForDraggable=function(k){return f[k]};this.reset=function(){h={};g=[];f={};e={}}};if(!window.console){window.console={time:function(){},timeEnd:function(){},group:function(){},groupEnd:function(){},log:function(){}}}window.jsPlumbAdapter={headless:false,appendToRoot:function(e){document.body.appendChild(e)},getRenderModes:function(){return["canvas","svg","vml"]},isRenderModeAvailable:function(e){return{canvas:b,svg:a,vml:d()}[e]},getDragManager:function(e){return new c(e)},setRenderMode:function(i){var h;if(i){i=i.toLowerCase();var f=this.isRenderModeAvailable("canvas"),e=this.isRenderModeAvailable("svg"),g=this.isRenderModeAvailable("vml");if(i==="svg"){if(e){h="svg"}else{if(f){h="canvas"}else{if(g){h="vml"}}}}else{if(i==="canvas"&&f){h="canvas"}else{if(g){h="vml"}}}}return h}}})();(function(){var g=jsPlumbUtil.findWithFunction,G=jsPlumbUtil.indexOf,A=jsPlumbUtil.removeWithFunction,k=jsPlumbUtil.remove,r=jsPlumbUtil.addWithFunction,i=jsPlumbUtil.addToList,l=jsPlumbUtil.isArray,z=jsPlumbUtil.isString,u=jsPlumbUtil.isObject;var v=null,c=function(H,I){return n.CurrentLibrary.getAttribute(C(H),I)},d=function(I,J,H){n.CurrentLibrary.setAttribute(C(I),J,H)},y=function(I,H){n.CurrentLibrary.addClass(C(I),H)},h=function(I,H){return n.CurrentLibrary.hasClass(C(I),H)},m=function(I,H){n.CurrentLibrary.removeClass(C(I),H)},C=function(H){return n.CurrentLibrary.getElementObject(H)},s=function(I,H){var K=n.CurrentLibrary.getOffset(C(I));if(H!=null){var J=H.getZoom();return{left:K.left/J,top:K.top/J}}else{return K}},a=function(H){return n.CurrentLibrary.getSize(C(H))},o=jsPlumbUtil.log,F=jsPlumbUtil.group,f=jsPlumbUtil.groupEnd,E=jsPlumbUtil.time,t=jsPlumbUtil.timeEnd,p=function(){return""+(new Date()).getTime()},B=function(aa){var U=this,ab=arguments,S=false,M=aa.parameters||{},K=U.idPrefix,X=K+(new Date()).getTime(),W=null,ac=null;U._jsPlumb=aa._jsPlumb;U.getId=function(){return X};U.tooltip=aa.tooltip;U.hoverClass=aa.hoverClass||U._jsPlumb.Defaults.HoverClass||n.Defaults.HoverClass;jsPlumbUtil.EventGenerator.apply(this);this.clone=function(){var ad=new Object();U.constructor.apply(ad,ab);return ad};this.getParameter=function(ad){return M[ad]},this.getParameters=function(){return M},this.setParameter=function(ad,ae){M[ad]=ae},this.setParameters=function(ad){M=ad},this.overlayPlacements=[];var L=aa.beforeDetach;this.isDetachAllowed=function(ad){var ae=U._jsPlumb.checkCondition("beforeDetach",ad);if(L){try{ae=L(ad)}catch(af){o("jsPlumb: beforeDetach callback failed",af)}}return ae};var O=aa.beforeDrop;this.isDropAllowed=function(ai,af,ag,ad,ae){var ah=U._jsPlumb.checkCondition("beforeDrop",{sourceId:ai,targetId:af,scope:ag,connection:ad,dropEndpoint:ae});if(O){try{ah=O({sourceId:ai,targetId:af,scope:ag,connection:ad,dropEndpoint:ae})}catch(aj){o("jsPlumb: beforeDrop callback failed",aj)}}return ah};var Y=function(){if(W&&ac){var ad={};n.extend(ad,W);n.extend(ad,ac);delete U.hoverPaintStyle;if(ad.gradient&&W.fillStyle){delete ad.gradient}ac=ad}};this.setPaintStyle=function(ad,ae){W=ad;U.paintStyleInUse=W;Y();if(!ae){U.repaint()}};this.getPaintStyle=function(){return W};this.setHoverPaintStyle=function(ad,ae){ac=ad;Y();if(!ae){U.repaint()}};this.getHoverPaintStyle=function(){return ac};this.setHover=function(ad,af,ae){if(!U._jsPlumb.currentlyDragging&&!U._jsPlumb.isHoverSuspended()){S=ad;if(U.hoverClass!=null&&U.canvas!=null){if(ad){J.addClass(U.canvas,U.hoverClass)}else{J.removeClass(U.canvas,U.hoverClass)}}if(ac!=null){U.paintStyleInUse=ad?ac:W;ae=ae||p();U.repaint({timestamp:ae,recalc:false})}if(U.getAttachedElements&&!af){Z(ad,p(),U)}}};this.isHover=function(){return S};var V=null;this.setZIndex=function(ad){V=ad};this.getZIndex=function(){return V};var J=n.CurrentLibrary,I=["click","dblclick","mouseenter","mouseout","mousemove","mousedown","mouseup","contextmenu"],T={mouseout:"mouseexit"},N=function(af,ag,ae){var ad=T[ae]||ae;J.bind(af,ae,function(ah){ag.fire(ad,ag,ah)})},R=function(af,ae){var ad=T[ae]||ae;J.unbind(af,ae)};this.attachListeners=function(ae,af){for(var ad=0;ad1){for(var ad=0;ad=0?S.overlays[T]:null};this.getOverlays=function(){return S.overlays};this.hideOverlay=function(U){var T=S.getOverlay(U);if(T){T.hide()}};this.hideOverlays=function(){for(var T=0;T0){try{for(var bA=0;bA0?G(bB,bA)!=-1:!bz};this.getConnections=function(bI,bA){if(!bI){bI={}}else{if(bI.constructor==String){bI={scope:bI}}}var bH=bI.scope||br.getDefaultScope(),bG=bv(bH,true),bz=bv(bI.source),bE=bv(bI.target),bD=(!bA&&bG.length>1)?{}:[],bJ=function(bL,bM){if(!bA&&bG.length>1){var bK=bD[bL];if(bK==null){bK=[];bD[bL]=bK}bK.push(bM)}else{bD.push(bM)}};for(var bC in a0){if(aI(bG,bC)){for(var bB=0;bB0&&!bL.isSource),bG=(bC&&bJ.length>0&&!bL.isTarget);if(bN||bG){continue inner}bP.push(bL)}}}}return bf(bP)};this.getAllConnections=function(){return a0};this.getDefaultScope=function(){return R};this.getEndpoint=ax;this.getEndpoints=function(bz){return aV[H(bz)]};this.getId=H;this.getOffset=function(bA){var bz=aj[bA];return X({elId:bA})};this.getSelector=function(bz){return n.CurrentLibrary.getSelector(bz)};this.getSize=function(bA){var bz=ag[bA];if(!bz){X({elId:bA})}return ag[bA]};this.appendElement=aX;var aU=false;this.isHoverSuspended=function(){return aU};this.setHoverSuspended=function(bz){aU=bz};var aY=function(bz){return function(){return jsPlumbAdapter.isRenderModeAvailable(bz)}};this.isCanvasAvailable=aY("canvas");this.isSVGAvailable=aY("svg");this.isVMLAvailable=aY("vml");this.hide=function(bz,bA){a7(bz,"none",bA)};this.idstamp=an;this.init=function(){if(!K){br.setRenderMode(br.Defaults.RenderMode);var bz=function(bA){n.CurrentLibrary.bind(document,bA,function(bG){if(!br.currentlyDragging&&Y==n.CANVAS){for(var bF in a0){var bH=a0[bF];for(var bD=0;bD=4)?[bE[2],bE[3]]:[0,0],offsets:(bE.length==6)?[bE[4],bE[5]]:[0,0],elementId:bB};bC=new ab(bD);bC.clone=function(){return new ab(bD)}}}}}if(!bC.id){bC.id="anchor_"+an()}return bC};this.makeAnchors=function(bC,bA,bz){var bD=[];for(var bB=0;bB0&&bT>=at[bM]){if(bz){bz({element:bO,connection:bY},bR)}return false}bQ.anchor.locked=false;if(b1){bH.setDragScope(b3,b1)}var bW=proxyComponent.isDropAllowed(bY.sourceId,H(bO),bY.scope,bY,null);if(bY.endpointsToDeleteOnDetach){if(bQ===bY.endpointsToDeleteOnDetach[0]){bY.endpointsToDeleteOnDetach[0]=null}else{if(bQ===bY.endpointsToDeleteOnDetach[1]){bY.endpointsToDeleteOnDetach[1]=null}}}if(bY.suspendedEndpoint){bY.targetId=bY.suspendedEndpoint.elementId;bY.target=bH.getElementObject(bY.suspendedEndpoint.elementId);bY.endpoints[1]=bY.suspendedEndpoint}if(bW){bQ.detach(bY,false,true,false);var b2=aK[bM]||br.addEndpoint(bO,bA);if(bA.uniqueEndpoint){aK[bM]=b2}b2._makeTargetCreator=true;if(b2.anchor.positionFinder!=null){var bZ=bH.getUIPosition(arguments,br.getZoom()),bV=s(bO,br),b0=a(bO),bU=b2.anchor.positionFinder(bZ,bV,b0,b2.anchor.constructorParams);b2.anchor.x=bU[0];b2.anchor.y=bU[1]}var bX=br.connect({source:bQ,target:b2,scope:b1,previousConnection:bY,container:bY.parent,deleteEndpointsOnDetach:bE,doNotFireConnectionEvent:bQ.endpointWillMoveAfterConnection});if(bY.endpoints[1]._makeTargetCreator&&bY.endpoints[1].connections.length<2){br.deleteEndpoint(bY.endpoints[1])}if(bE){bX.endpointsToDeleteOnDetach=[bQ,b2]}bX.repaint()}else{if(bY.suspendedEndpoint){if(bY.isReattach()){bY.setHover(false);bY.floatingAnchorIndex=null;bY.suspendedEndpoint.addConnection(bY);br.repaint(bQ.elementId)}else{bQ.detach(bY,false,true,true,bR)}}}};var bN=bH.dragEvents.drop;bL.scope=bL.scope||bI;bL[bN]=ap(bL[bN],bK);bH.initDroppable(bO,bL,true)};bC=aL(bC);var bG=bC.length&&bC.constructor!=String?bC:[bC];for(var bF=0;bF=0&&bX>=N[bJ]){if(bA){bA({element:bQ,maxConnections:bC},bZ)}return false}if(bE.filter){var bV=bE.filter(bH.getOriginalEvent(bZ),bQ);if(bV===false){return}}var b3=X({elId:bK});var b2=((bZ.pageX||bZ.page.x)-b3.left)/b3.width,b1=((bZ.pageY||bZ.page.y)-b3.top)/b3.height,b7=b2,b6=b1;if(bB.parent){var b0=bH.getElementObject(bB.parent),bY=H(b0);b3=X({elId:bY});b7=((bZ.pageX||bZ.page.x)-b3.left)/b3.width,b6=((bZ.pageY||bZ.page.y)-b3.top)/b3.height}var b5={};n.extend(b5,bB);b5.isSource=true;b5.anchor=[b2,b1,0,0];b5.parentAnchor=[b7,b6,0,0];b5.dragOptions=bS;if(bB.parent){var bW=b5.container||br.Defaults.Container||n.Defaults.Container;if(bW){b5.container=bW}else{b5.container=n.CurrentLibrary.getParent(bB.parent)}}bU=br.addEndpoint(bK,b5);bO=true;bU.endpointWillMoveAfterConnection=bB.parent!=null;bU.endpointWillMoveTo=bB.parent?bH.getElementObject(bB.parent):null;var b4=function(){if(bO){br.deleteEndpoint(bU)}};br.registerListener(bU.canvas,"mouseup",b4);br.registerListener(bQ,"mouseup",b4);bH.trigger(bU.canvas,"mousedown",bZ)};br.registerListener(bQ,"mousedown",bM);J[bK]=bM};bD=aL(bD);var bG=bD.length&&bD.constructor!=String?bD:[bD];for(var bF=0;bF0?bJ[0]:null,bE=bJ.length>0?0:-1,bI=this,bD=function(bM,bK,bQ,bP,bL){var bO=bP[0]+(bM.x*bL[0]),bN=bP[1]+(bM.y*bL[1]);return Math.sqrt(Math.pow(bK-bO,2)+Math.pow(bQ-bN,2))},bz=bA||function(bU,bL,bM,bN,bK){var bP=bM[0]+(bN[0]/2),bO=bM[1]+(bN[1]/2);var bR=-1,bT=Infinity;for(var bQ=0;bQ=bC.left)||(bF.left<=bC.right&&bF.right>=bC.right)||(bF.left<=bC.left&&bF.right>=bC.right)||(bC.left<=bF.left&&bC.right>=bF.right)),bK=((bF.top<=bC.top&&bF.bottom>=bC.top)||(bF.top<=bC.bottom&&bF.bottom>=bC.bottom)||(bF.top<=bC.top&&bF.bottom>=bC.bottom)||(bC.top<=bF.top&&bC.bottom>=bF.bottom));if(!(bE||bK)){var bH=null,bB=false,bz=false,bG=null;if(bC.left>bF.left&&bC.top>bF.top){bH=["right","top"]}else{if(bC.left>bF.left&&bF.top>bC.top){bH=["top","left"]}else{if(bC.leftbF.top){bH=["left","top"]}}}}return{orientation:U.DIAGONAL,a:bH,theta:bA,theta2:bD}}else{if(bE){return{orientation:U.HORIZONTAL,a:bF.topbz[0]?1:-1},aa=function(bz){return function(bB,bA){var bC=true;if(bz){if(bB[0][0]bA[0][1]}}else{if(bB[0][0]>bA[0][0]){bC=true}else{bC=bB[0][1]>bA[0][1]}}return bC===false?-1:1}},M=function(bA,bz){var bC=bA[0][0]<0?-Math.PI-bA[0][0]:Math.PI-bA[0][0],bB=bz[0][0]<0?-Math.PI-bz[0][0]:Math.PI-bz[0][0];if(bC>bB){return 1}else{return bA[0][1]>bz[0][1]?1:-1}},a2={top:bb,right:aa(true),bottom:aa(true),left:M},ar=function(bz,bA){return bz.sort(bA)},ao=function(bA,bz){var bC=ag[bA],bD=aj[bA],bB=function(bK,bR,bG,bJ,bP,bO,bF){if(bJ.length>0){var bN=ar(bJ,a2[bK]),bL=bK==="right"||bK==="top",bE=a5(bK,bR,bG,bN,bP,bO,bL);var bS=function(bV,bU){var bT=bs([bU[0],bU[1]],bV.canvas);ak[bV.id]=[bT[0],bT[1],bU[2],bU[3]];aM[bV.id]=bF};for(var bH=0;bH0){bS.connections[0].setHover(b7,false)}else{bS.setHover(b7)}};D(bS.endpoint,bS,b6);this.setPaintStyle(b5.paintStyle||b5.style||br.Defaults.EndpointStyle||n.Defaults.EndpointStyle,true);this.setHoverPaintStyle(b5.hoverPaintStyle||br.Defaults.EndpointHoverStyle||n.Defaults.EndpointHoverStyle,true);this.paintStyleInUse=this.getPaintStyle();var bN=this.getPaintStyle();this.connectorStyle=b5.connectorStyle;this.connectorHoverStyle=b5.connectorHoverStyle;this.connectorOverlays=b5.connectorOverlays;this.connector=b5.connector;this.connectorTooltip=b5.connectorTooltip;this.connectorClass=b5.connectorClass;this.connectorHoverClass=b5.connectorHoverClass;this.isSource=b5.isSource||false;this.isTarget=b5.isTarget||false;var bY=b5.maxConnections||br.Defaults.MaxConnections;this.getAttachedElements=function(){return bS.connections};this.canvas=this.endpoint.canvas;this.connections=b5.connections||[];this.scope=b5.scope||R;this.connectionType=b5.connectionType;this.timestamp=null;bS.reattachConnections=b5.reattach||br.Defaults.ReattachConnections;bS.connectionsDetachable=br.Defaults.ConnectionsDetachable;if(b5.connectionsDetachable===false||b5.detachable===false){bS.connectionsDetachable=false}var bM=b5.dragAllowedWhenFull||true;if(b5.onMaxConnections){bS.bind("maxConnections",b5.onMaxConnections)}this.computeAnchor=function(b7){return bS.anchor.compute(b7)};this.addConnection=function(b7){bS.connections.push(b7)};this.detach=function(b8,cd,b9,cg,b7){var cf=g(bS.connections,function(ci){return ci.id==b8.id}),ce=false;cg=(cg!==false);if(cf>=0){if(b9||b8._forceDetach||b8.isDetachable()||b8.isDetachAllowed(b8)){var ch=b8.endpoints[0]==bS?b8.endpoints[1]:b8.endpoints[0];if(b9||b8._forceDetach||(bS.isDetachAllowed(b8))){bS.connections.splice(cf,1);if(!cd){ch.detach(b8,true,b9);if(b8.endpointsToDeleteOnDetach){for(var cc=0;cc0){bS.detach(bS.connections[0],false,true,b8,b7)}};this.detachFrom=function(ca,b9,b7){var cb=[];for(var b8=0;b8=0){bS.connections.splice(b7,1)}};this.getElement=function(){return bR};this.setElement=function(ca,b7){var cc=H(ca);A(aV[bS.elementId],function(cd){return cd.id==bS.id});bR=C(ca);bJ=H(bR);bS.elementId=bJ;var cb=ay({source:cc,container:b7}),b9=bD.getParent(bS.canvas);bD.removeElement(bS.canvas,b9);bD.appendElement(bS.canvas,cb);for(var b8=0;b80){var cj=bO(ca.elementWithPrecedence),cl=cj.endpoints[0]==bS?1:0,cc=cl==0?cj.sourceId:cj.targetId,ci=aj[cc],ck=ag[cc];b9.txy=[ci.left,ci.top];b9.twh=ck;b9.tElement=cj.endpoints[cl]}cd=bS.anchor.compute(b9)}var ch=bP.compute(cd,bS.anchor.getOrientation(bS),bS.paintStyleInUse,cb||bS.paintStyleInUse);bP.paint(ch,bS.paintStyleInUse,bS.anchor);bS.timestamp=cg;for(var ce=0;ce0?u:n+u:u*n;return jsPlumbUtil.pointOnLine({x:i,y:h},{x:e,y:d},t)}}};this.gradientAtPoint=function(t){return f};this.pointAlongPathFrom=function(t,x,w){var v=s.pointOnPath(t,w),u=t==1?{x:i+((e-i)*10),y:h+((h-d)*10)}:{x:e,y:d};return jsPlumbUtil.pointOnLine(v,u,x)}};jsPlumb.Connectors.Bezier=function(w){var q=this;w=w||{};this.majorAnchor=w.curviness||150;this.minorAnchor=10;var u=null;this.type="Bezier";this._findControlPoint=function(I,x,D,y,B,G,z){var F=G.getOrientation(y),H=z.getOrientation(B),C=F[0]!=H[0]||F[1]==H[1],A=[],J=q.majorAnchor,E=q.minorAnchor;if(!C){if(F[0]==0){A.push(x[0]v){v=D}if(G<0){t+=G;var I=Math.abs(G);v+=I;r[0]+=I;g+=I;p+=I;m[0]+=I}var Q=Math.min(f,o),O=Math.min(r[1],m[1]),C=Math.min(Q,O),H=Math.max(f,o),F=Math.max(r[1],m[1]),z=Math.max(H,F);if(z>e){e=z}if(C<0){s+=C;var E=Math.abs(C);e+=E;r[1]+=E;f+=E;o+=E;m[1]+=E}if(M&&v0?0:1,x)}return x};this.pointOnPath=function(x,z){var y=d();x=n(y,x,z);return jsBezier.pointOnCurve(y,x)};this.gradientAtPoint=function(x,z){var y=d();x=n(y,x,z);return jsBezier.gradientAtPoint(y,x)};this.pointAlongPathFrom=function(x,A,z){var y=d();x=n(y,x,z);return jsBezier.pointAlongCurveFrom(y,x,A)}};jsPlumb.Connectors.Flowchart=function(z){this.type="Flowchart";z=z||{};var r=this,e=z.stub||z.minStubLength||30,i=jsPlumbUtil.isArray(e)?e[0]:e,o=jsPlumbUtil.isArray(e)?e[1]:e,t=z.gap||0,u=[],m=0,g=[],q=[],v=[],s,p,y=-Infinity,w=-Infinity,A=Infinity,x=Infinity,d=z.grid,f=function(G,C){var F=G%C,D=Math.floor(G/C),E=F>(C/2)?1:0;return(D+E)*C},n=function(C,F,E,D){return[E||d==null?C:f(C,d[0]),D||d==null?F:f(F,d[1])]},B=function(D,C,H,G){var F=0;for(var E=0;E0?E/m:(m+E)/m}var C=g.length-1,D=1;for(var F=0;F=E){C=F;D=(E-g[F][0])/q[F];break}}return{segment:u[C],proportion:D,index:C}};this.compute=function(Z,an,C,T,ay,N,X,S,at,ap){u=[];g=[];m=0;q=[];y=w=-Infinity;A=x=Infinity;r.lineWidth=X;s=an[0]ax?0:1,ah=[1,0][af];Q=[];az=[];Q[af]=Z[af]>an[af]?-1:1;az[af]=Z[af]>an[af]?1:-1;Q[ah]=0;az[ah]=0}var L=s?(ao-E)+(t*Q[0]):H+(t*Q[0]),K=p?(ax-D)+(t*Q[1]):G+(t*Q[1]),av=s?H+(t*az[0]):(ao-E)+(t*az[0]),au=p?G+(t*az[1]):(ax-D)+(t*az[1]),ac=L+(Q[0]*i),ab=K+(Q[1]*i),O=av+(az[0]*o),M=au+(az[1]*o),Y=Math.abs(L-av)>(i+o),aa=Math.abs(K-au)>(i+o),ak=ac+((O-ac)/2),ai=ab+((M-ab)/2),R=((Q[0]*az[0])+(Q[1]*az[1])),ae=R==-1,ag=R==0,F=R==1;am-=H;al-=G;v=[am,al,ao,ax,L,K,av,au];var ar=[];var V=Q[0]==0?"y":"x",P=ae?"opposite":F?"orthogonal":"perpendicular",I=jsPlumbUtil.segment([L,K],[av,au]),aj=Q[V=="x"?0:1]==-1,U={x:[null,4,3,2,1],y:[null,2,1,4,3]};if(aj){I=U[V][I]}k(ac,ab,L,K,av,au);var W=function(aD,aC,aA,aB){return aD+(aC*((1-aA)*aB)+Math.max(i,o))},J={oppositex:function(){if(C.elementId==T.elementId){var aA=ab+((1-ay.y)*at.height)+Math.max(i,o);return[[ac,aA],[O,aA]]}else{if(Y&&(I==1||I==2)){return[[ak,K],[ak,au]]}else{return[[ac,ai],[O,ai]]}}},orthogonalx:function(){if(I==1||I==2){return[[O,ab]]}else{return[[ac,M]]}},perpendicularx:function(){var aA=(au+K)/2;if((I==1&&az[1]==1)||(I==2&&az[1]==-1)){if(Math.abs(av-L)>Math.max(i,o)){return[[O,ab]]}else{return[[ac,ab],[ac,aA],[O,aA]]}}else{if((I==3&&az[1]==-1)||(I==4&&az[1]==1)){return[[ac,aA],[O,aA]]}else{if((I==3&&az[1]==1)||(I==4&&az[1]==-1)){return[[ac,M]]}else{if((I==1&&az[1]==-1)||(I==2&&az[1]==1)){if(Math.abs(av-L)>Math.max(i,o)){return[[ak,ab],[ak,M]]}else{return[[ac,M]]}}}}}},oppositey:function(){if(C.elementId==T.elementId){var aA=ac+((1-ay.x)*at.width)+Math.max(i,o);return[[aA,ab],[aA,M]]}else{if(aa&&(I==2||I==3)){return[[L,ai],[av,ai]]}else{return[[ak,ab],[ak,M]]}}},orthogonaly:function(){if(I==2||I==3){return[[ac,M]]}else{return[[O,ab]]}},perpendiculary:function(){var aA=(av+L)/2;if((I==2&&az[0]==-1)||(I==3&&az[0]==1)){if(Math.abs(av-L)>Math.max(i,o)){return[[ac,M]]}else{return[[ac,ai],[O,ai]]}}else{if((I==1&&az[0]==-1)||(I==4&&az[0]==1)){var aA=(av+L)/2;return[[aA,ab],[aA,M]]}else{if((I==1&&az[0]==1)||(I==4&&az[0]==-1)){return[[O,ab]]}else{if((I==2&&az[0]==1)||(I==3&&az[0]==-1)){if(Math.abs(au-K)>Math.max(i,o)){return[[ac,ai],[O,ai]]}else{return[[O,ab]]}}}}}}};var aq=J[P+V]();if(aq){for(var aw=0;awv[3]){v[3]=w+(X*2)}if(y>v[2]){v[2]=y+(X*2)}return v};this.pointOnPath=function(C,D){return r.pointAlongPathFrom(C,0,D)};this.gradientAtPoint=function(C,D){return u[h(C,D)["index"]][4]};this.pointAlongPathFrom=function(J,C,I){var K=h(J,I),G=K.segment,D=K.proportion,F=u[K.index][5],E=u[K.index][4];var H={x:E==Infinity?G[2]:G[2]>G[0]?G[0]+((1-D)*F)-C:G[2]+(D*F)+C,y:E==0?G[3]:G[3]>G[1]?G[1]+((1-D)*F)-C:G[3]+(D*F)+C,segmentInfo:K};return H}};jsPlumb.Endpoints.Dot=function(e){this.type="Dot";var d=this;e=e||{};this.radius=e.radius||10;this.defaultOffset=0.5*this.radius;this.defaultInnerRadius=this.radius/3;this.compute=function(k,g,m,i){var h=m.radius||d.radius,f=k[0]-h,l=k[1]-h;return[f,l,h*2,h*2,h]}};jsPlumb.Endpoints.Rectangle=function(e){this.type="Rectangle";var d=this;e=e||{};this.width=e.width||20;this.height=e.height||20;this.compute=function(l,h,n,k){var i=n.width||d.width,g=n.height||d.height,f=l[0]-(i/2),m=l[1]-(g/2);return[f,m,i,g]}};var b=function(f){jsPlumb.DOMElementComponent.apply(this,arguments);var d=this;var e=[];this.getDisplayElements=function(){return e};this.appendDisplayElement=function(g){e.push(g)}};jsPlumb.Endpoints.Image=function(i){this.type="Image";b.apply(this,arguments);var n=this,h=false,g=false,f=i.width,e=i.height,l=null,d=i.endpoint;this.img=new Image();n.ready=false;this.img.onload=function(){n.ready=true;f=f||n.img.width;e=e||n.img.height;if(l){l(n)}};d.setImage=function(o,q){var p=o.constructor==String?o:o.src;l=q;n.img.src=o;if(n.canvas!=null){n.canvas.setAttribute("src",o)}};d.setImage(i.src||i.url,i.onload);this.compute=function(q,o,r,p){n.anchorPoint=q;if(n.ready){return[q[0]-f/2,q[1]-e/2,f,e]}else{return[0,0,0,0]}};n.canvas=document.createElement("img"),h=false;n.canvas.style.margin=0;n.canvas.style.padding=0;n.canvas.style.outline=0;n.canvas.style.position="absolute";var k=i.cssClass?" "+i.cssClass:"";n.canvas.className=jsPlumb.endpointClass+k;if(f){n.canvas.setAttribute("width",f)}if(e){n.canvas.setAttribute("height",e)}jsPlumb.appendElement(n.canvas,i.parent);n.attachListeners(n.canvas,n);n.cleanup=function(){g=true};var m=function(r,q,p){if(!g){if(!h){n.canvas.setAttribute("src",n.img.src);n.appendDisplayElement(n.canvas);h=true}var o=n.anchorPoint[0]-(f/2),s=n.anchorPoint[1]-(e/2);jsPlumb.sizeCanvas(n.canvas,o,s,f,e)}};this.paint=function(q,p,o){if(n.ready){m(q,p,o)}else{window.setTimeout(function(){n.paint(q,p,o)},200)}}};jsPlumb.Endpoints.Blank=function(e){var d=this;this.type="Blank";b.apply(this,arguments);this.compute=function(h,f,i,g){return[h[0],h[1],10,0]};d.canvas=document.createElement("div");d.canvas.style.display="block";d.canvas.style.width="1px";d.canvas.style.height="1px";d.canvas.style.background="transparent";d.canvas.style.position="absolute";d.canvas.className=d._jsPlumb.endpointClass;jsPlumb.appendElement(d.canvas,e.parent);this.paint=function(h,g,f){jsPlumb.sizeCanvas(d.canvas,h[0],h[1],h[2],h[3])}};jsPlumb.Endpoints.Triangle=function(d){this.type="Triangle";d=d||{};d.width=d.width||55;d.height=d.height||55;this.width=d.width;this.height=d.height;this.compute=function(k,g,m,i){var h=m.width||self.width,f=m.height||self.height,e=k[0]-(h/2),l=k[1]-(f/2);return[e,l,h,f]}};var c=function(f){var e=true,d=this;this.isAppendedAtTopLevel=true;this.component=f.component;this.loc=f.location==null?0.5:f.location;this.endpointLoc=f.endpointLocation==null?[0.5,0.5]:f.endpointLocation;this.setVisible=function(g){e=g;d.component.repaint()};this.isVisible=function(){return e};this.hide=function(){d.setVisible(false)};this.show=function(){d.setVisible(true)};this.incrementLocation=function(g){d.loc+=g;d.component.repaint()};this.setLocation=function(g){d.loc=g;d.component.repaint()};this.getLocation=function(){return d.loc}};jsPlumb.Overlays.Arrow=function(h){this.type="Arrow";c.apply(this,arguments);this.isAppendedAtTopLevel=false;h=h||{};var e=this;this.length=h.length||20;this.width=h.width||20;this.id=h.id;var g=(h.direction||1)<0?-1:1,f=h.paintStyle||{lineWidth:1},d=h.foldback||0.623;this.computeMaxSize=function(){return e.width*1.5};this.cleanup=function(){};this.draw=function(m,A,v){var p,w,i,q,o;if(m.pointAlongPathFrom){if(jsPlumbUtil.isString(e.loc)||e.loc>1||e.loc<0){var k=parseInt(e.loc);p=m.pointAlongPathFrom(k,g*e.length/2,true),w=m.pointOnPath(k,true),i=jsPlumbUtil.pointOnLine(p,w,e.length)}else{if(e.loc==1){p=m.pointOnPath(e.loc);w=m.pointAlongPathFrom(e.loc,-1);i=jsPlumbUtil.pointOnLine(p,w,e.length)}else{if(e.loc==0){i=m.pointOnPath(e.loc);w=m.pointAlongPathFrom(e.loc,1);p=jsPlumbUtil.pointOnLine(i,w,e.length)}else{p=m.pointAlongPathFrom(e.loc,g*e.length/2),w=m.pointOnPath(e.loc),i=jsPlumbUtil.pointOnLine(p,w,e.length)}}}q=jsPlumbUtil.perpendicularLineTo(p,i,e.width);o=jsPlumbUtil.pointOnLine(p,i,d*e.length);var z=Math.min(p.x,q[0].x,q[1].x),t=Math.max(p.x,q[0].x,q[1].x),y=Math.min(p.y,q[0].y,q[1].y),s=Math.max(p.y,q[0].y,q[1].y);var r={hxy:p,tail:q,cxy:o},u=f.strokeStyle||A.strokeStyle,x=f.fillStyle||A.strokeStyle,n=f.lineWidth||A.lineWidth;e.paint(m,r,n,u,x,v);return[z,t,y,s]}else{return[0,0,0,0]}}};jsPlumb.Overlays.PlainArrow=function(e){e=e||{};var d=jsPlumb.extend(e,{foldback:1});jsPlumb.Overlays.Arrow.call(this,d);this.type="PlainArrow"};jsPlumb.Overlays.Diamond=function(f){f=f||{};var d=f.length||40,e=jsPlumb.extend(f,{length:d/2,foldback:2});jsPlumb.Overlays.Arrow.call(this,e);this.type="Diamond"};var a=function(i){jsPlumb.DOMElementComponent.apply(this,arguments);c.apply(this,arguments);var d=this,e=false;i=i||{};this.id=i.id;var l;var h=function(){l=i.create(i.component);l=jsPlumb.CurrentLibrary.getDOMElement(l);l.style.position="absolute";var m=i._jsPlumb.overlayClass+" "+(d.cssClass?d.cssClass:i.cssClass?i.cssClass:"");l.className=m;jsPlumb.appendElement(l,i.component.parent);i._jsPlumb.getId(l);d.attachListeners(l,d);d.canvas=l};this.getElement=function(){if(l==null){h()}return l};this.getDimensions=function(){return jsPlumb.CurrentLibrary.getSize(jsPlumb.CurrentLibrary.getElementObject(d.getElement()))};var f=null,k=function(m){if(f==null){f=d.getDimensions()}return f};this.clearCachedDimensions=function(){f=null};this.computeMaxSize=function(){var m=k();return Math.max(m[0],m[1])};var g=d.setVisible;d.setVisible=function(m){g(m);l.style.display=m?"block":"none"};this.cleanup=function(){if(l!=null){jsPlumb.CurrentLibrary.removeElement(l)}};this.paint=function(m,o,n){if(!e){d.getElement();m.appendDisplayElement(l);d.attachListeners(l,m);e=true}l.style.left=(n[0]+o.minx)+"px";l.style.top=(n[1]+o.miny)+"px"};this.draw=function(n,o,p){var t=k();if(t!=null&&t.length==2){var q={x:0,y:0};if(n.pointOnPath){var r=d.loc,s=false;if(jsPlumbUtil.isString(d.loc)||d.loc<0||d.loc>1){r=parseInt(d.loc);s=true}q=n.pointOnPath(r,s)}else{var m=d.loc.constructor==Array?d.loc:d.endpointLoc;q={x:m[0]*p[2],y:m[1]*p[3]}}minx=q.x-(t[0]/2),miny=q.y-(t[1]/2);d.paint(n,{minx:minx,miny:miny,td:t,cxy:q},p);return[minx,minx+t[0],miny,miny+t[1]]}else{return[0,0,0,0]}};this.reattachListeners=function(m){if(l){d.reattachListenersForElement(l,d,m)}}};jsPlumb.Overlays.Custom=function(d){this.type="Custom";a.apply(this,arguments)};jsPlumb.Overlays.Label=function(h){var d=this;this.labelStyle=h.labelStyle||jsPlumb.Defaults.LabelStyle;this.cssClass=this.labelStyle!=null?this.labelStyle.cssClass:null;h.create=function(){return document.createElement("div")};jsPlumb.Overlays.Custom.apply(this,arguments);this.type="Label";var f=h.label||"",d=this,g=null;this.setLabel=function(k){f=k;g=null;d.clearCachedDimensions();e();d.component.repaint()};var e=function(){if(typeof f=="function"){var k=f(d);d.getElement().innerHTML=k.replace(/\r\n/g,"
      ")}else{if(g==null){g=f;d.getElement().innerHTML=g.replace(/\r\n/g,"
      ")}}};this.getLabel=function(){return f};var i=this.getDimensions;this.getDimensions=function(){e();return i()}}})();(function(){var c=function(e,g,d,f){this.m=(f-g)/(d-e);this.b=-1*((this.m*e)-g);this.rectIntersect=function(q,p,s,o){var n=[];var k=(p-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*(q+s))+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}var k=((p+o)-this.b)/this.m;if(k>=q&&k<=(q+s)){n.push([k,(this.m*k)+this.b])}var t=(this.m*q)+this.b;if(t>=p&&t<=(p+o)){n.push([(t-this.b)/this.m,t])}if(n.length==2){var m=(n[0][0]+n[1][0])/2,l=(n[0][1]+n[1][1])/2;n.push([m,l]);var i=m<=q+(s/2)?-1:1,r=l<=p+(o/2)?-1:1;n.push([i,r]);return n}return null}},a=function(e,g,d,f){if(e<=d&&f<=g){return 1}else{if(e<=d&&g<=f){return 2}else{if(d<=e&&f>=g){return 3}}}return 4},b=function(g,f,i,e,h,m,l,d,k){if(d<=k){return[g,f]}if(i==1){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==2){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]>=1&&h[2]<=0){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}else{if(i==3){if(e[3]>=1&&h[3]<=0){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(-1*m),f+(-1*l)]}}}else{if(i==4){if(e[3]<=0&&h[3]>=1){return[g+(e[2]<0.5?-1*m:m),f]}else{if(e[2]<=0&&h[2]>=1){return[g,f+(e[3]<0.5?-1*l:l)]}else{return[g+(1*m),f+(-1*l)]}}}}}}};jsPlumb.Connectors.StateMachine=function(l){var u=this,n=null,o,m,g,e,p=[],d=l.curviness||10,k=l.margin||5,q=l.proximityLimit||80,f=l.orientation&&l.orientation=="clockwise",i=l.loopbackRadius||25,h=false,t=l.showLoopback!==false;this.type="StateMachine";l=l||{};this.compute=function(ad,H,W,I,ac,z,v,U){var Q=Math.abs(ad[0]-H[0]),Y=Math.abs(ad[1]-H[1]),S=0.45*Q,ab=0.45*Y;Q*=1.9;Y*=1.9;v=v||1;var O=Math.min(ad[0],H[0])-S,M=Math.min(ad[1],H[1])-ab;if(!t||(W.elementId!=I.elementId)){h=false;o=ad[0]0?0:1,v)}return v};this.pointOnPath=function(x,B){if(h){if(B){var y=Math.PI*2*i;x=x/y}if(x>0&&x<1){x=1-x}var z=(x*2*Math.PI)+(Math.PI/2),w=n[4]+(n[6]*Math.cos(z)),v=n[5]+(n[6]*Math.sin(z));return{x:w,y:v}}else{var A=r();x=s(A,x,B);return jsBezier.pointOnCurve(A,x)}};this.gradientAtPoint=function(v,y){if(h){if(y){var w=Math.PI*2*i;v=v/w}return Math.atan(v*2*Math.PI)}else{var x=r();v=s(x,v,y);return jsBezier.gradientAtPoint(x,v)}};this.pointAlongPathFrom=function(D,v,C){if(h){if(C){var B=Math.PI*2*i;D=D/B}if(D>0&&D<1){D=1-D}var B=2*Math.PI*n[6],w=v/B*2*Math.PI,z=(D*2*Math.PI)-w+(Math.PI/2),y=n[4]+(n[6]*Math.cos(z)),x=n[5]+(n[6]*Math.sin(z));return{x:y,y:x}}else{var A=r();D=s(A,D,C);return jsBezier.pointAlongCurveFrom(A,D,v)}}};jsPlumb.Connectors.canvas.StateMachine=function(f){f=f||{};var d=this,g=f.drawGuideline||true,e=f.avoidSelector;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.CanvasConnector.apply(this,arguments);this._paint=function(l){if(l.length==10){d.ctx.beginPath();d.ctx.moveTo(l[4],l[5]);d.ctx.bezierCurveTo(l[8],l[9],l[8],l[9],l[6],l[7]);d.ctx.stroke()}else{d.ctx.save();d.ctx.beginPath();var k=0,i=2*Math.PI,h=l[7];d.ctx.arc(l[4],l[5],l[6],0,i,h);d.ctx.stroke();d.ctx.closePath();d.ctx.restore()}};this.createGradient=function(i,h){return h.createLinearGradient(i[4],i[5],i[6],i[7])}};jsPlumb.Connectors.svg.StateMachine=function(){var d=this;jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.SvgConnector.apply(this,arguments);this.getPath=function(e){if(e.length==10){return"M "+e[4]+" "+e[5]+" C "+e[8]+" "+e[9]+" "+e[8]+" "+e[9]+" "+e[6]+" "+e[7]}else{return"M"+(e[8]+4)+" "+e[9]+" A "+e[6]+" "+e[6]+" 0 1,0 "+(e[8]-4)+" "+e[9]}}};jsPlumb.Connectors.vml.StateMachine=function(){jsPlumb.Connectors.StateMachine.apply(this,arguments);jsPlumb.VmlConnector.apply(this,arguments);var d=jsPlumb.vml.convertValue;this.getPath=function(k){if(k.length==10){return"m"+d(k[4])+","+d(k[5])+" c"+d(k[8])+","+d(k[9])+","+d(k[8])+","+d(k[9])+","+d(k[6])+","+d(k[7])+" e"}else{var h=d(k[8]-k[6]),g=d(k[9]-(2*k[6])),f=h+d(2*k[6]),e=g+d(2*k[6]),l=h+","+g+","+f+","+e;var i="ar "+l+","+d(k[8])+","+d(k[9])+","+d(k[8])+","+d(k[9])+" e";return i}}}})();(function(){var h={"stroke-linejoin":"joinstyle",joinstyle:"joinstyle",endcap:"endcap",miterlimit:"miterlimit"},c=null;if(document.createStyleSheet&&document.namespaces){var m=[".jsplumb_vml","jsplumb\\:textbox","jsplumb\\:oval","jsplumb\\:rect","jsplumb\\:stroke","jsplumb\\:shape","jsplumb\\:group"],g="behavior:url(#default#VML);position:absolute;";c=document.createStyleSheet();for(var r=0;rF?1:-1:0,K=N?Q>P?1:-1:0,O=D.lineWidth/2;G=G+" L "+H+" "+Q;G=G+" L "+(H+(L*O))+" "+(Q+(K*O));J=H;I=Q;G=G+" M "+H+" "+Q}G=G+" L "+E[6]+","+E[7];return G}};var y=window.SvgEndpoint=function(E){var D=this;s.apply(this,[{cssClass:E._jsPlumb.endpointClass,originalArgs:arguments,pointerEventsSpec:"all",useDivWrapper:true,_jsPlumb:E._jsPlumb}]);this._paint=function(H,G){var F=jsPlumb.extend({},G);if(F.outlineColor){F.strokeWidth=F.outlineWidth;F.strokeStyle=jsPlumbUtil.convertStyle(F.outlineColor,true)}if(D.node==null){D.node=D.makeNode(H,F);D.svg.appendChild(D.node);D.attachListeners(D.node,D)}x(D.svg,D.node,F,H,D);n(D.node,H)};this.reattachListeners=function(){if(D.node){D.reattachListenersForElement(D.node,D)}}};jsPlumb.Endpoints.svg.Dot=function(){jsPlumb.Endpoints.Dot.apply(this,arguments);y.apply(this,arguments);this.makeNode=function(E,D){return f("circle",{cx:E[2]/2,cy:E[3]/2,r:E[2]/2})}};jsPlumb.Endpoints.svg.Rectangle=function(){jsPlumb.Endpoints.Rectangle.apply(this,arguments);y.apply(this,arguments);this.makeNode=function(E,D){return f("rect",{width:E[2],height:E[3]})}};jsPlumb.Endpoints.svg.Image=jsPlumb.Endpoints.Image;jsPlumb.Endpoints.svg.Blank=jsPlumb.Endpoints.Blank;jsPlumb.Overlays.svg.Label=jsPlumb.Overlays.Label;jsPlumb.Overlays.svg.Custom=jsPlumb.Overlays.Custom;var p=function(H,F){H.apply(this,F);jsPlumb.jsPlumbUIComponent.apply(this,F);this.isAppendedAtTopLevel=false;var D=this,G=null;this.paint=function(J,M,I,N,K){if(G==null){G=f("path",{"pointer-events":"all"});J.svg.appendChild(G);D.attachListeners(G,J);D.attachListeners(G,D)}var L=F&&(F.length==1)?(F[0].cssClass||""):"";g(G,{d:E(M),"class":L,stroke:N?N:null,fill:K?K:null})};var E=function(I){return"M"+I.hxy.x+","+I.hxy.y+" L"+I.tail[0].x+","+I.tail[0].y+" L"+I.cxy.x+","+I.cxy.y+" L"+I.tail[1].x+","+I.tail[1].y+" L"+I.hxy.x+","+I.hxy.y};this.reattachListeners=function(){if(G){D.reattachListenersForElement(G,D)}};this.cleanup=function(){if(G!=null){jsPlumb.CurrentLibrary.removeElement(G)}}};jsPlumb.Overlays.svg.Arrow=function(){p.apply(this,[jsPlumb.Overlays.Arrow,arguments])};jsPlumb.Overlays.svg.PlainArrow=function(){p.apply(this,[jsPlumb.Overlays.PlainArrow,arguments])};jsPlumb.Overlays.svg.Diamond=function(){p.apply(this,[jsPlumb.Overlays.Diamond,arguments])};jsPlumb.Overlays.svg.GuideLines=function(){var I=null,D=this,H=null,G,F;jsPlumb.Overlays.GuideLines.apply(this,arguments);this.paint=function(K,M,J,N,L){if(I==null){I=f("path");K.svg.appendChild(I);D.attachListeners(I,K);D.attachListeners(I,D);G=f("path");K.svg.appendChild(G);D.attachListeners(G,K);D.attachListeners(G,D);F=f("path");K.svg.appendChild(F);D.attachListeners(F,K);D.attachListeners(F,D)}g(I,{d:E(M[0],M[1]),stroke:"red",fill:null});g(G,{d:E(M[2][0],M[2][1]),stroke:"blue",fill:null});g(F,{d:E(M[3][0],M[3][1]),stroke:"green",fill:null})};var E=function(K,J){return"M "+K.x+","+K.y+" L"+J.x+","+J.y}}})();(function(){var d=null,i=function(p,o){return jsPlumb.CurrentLibrary.hasClass(a(p),o)},a=function(o){return jsPlumb.CurrentLibrary.getElementObject(o)},m=function(o){return jsPlumb.CurrentLibrary.getOffset(a(o))},n=function(o){return jsPlumb.CurrentLibrary.getPageXY(o)},f=function(o){return jsPlumb.CurrentLibrary.getClientXY(o)};var k=function(){var q=this;q.overlayPlacements=[];jsPlumb.jsPlumbUIComponent.apply(this,arguments);jsPlumbUtil.EventGenerator.apply(this,arguments);this._over=function(z){var B=m(a(q.canvas)),D=n(z),u=D[0]-B.left,C=D[1]-B.top;if(u>0&&C>0&&u=u&&w[2]<=C&&w[3]>=C)){return true}}var A=q.canvas.getContext("2d").getImageData(parseInt(u),parseInt(C),1,1);return A.data[0]!=0||A.data[1]!=0||A.data[2]!=0||A.data[3]!=0}return false};var p=false,o=false,t=null,s=false,r=function(v,u){return v!=null&&i(v,u)};this.mousemove=function(x){var z=n(x),w=f(x),v=document.elementFromPoint(w[0],w[1]),y=r(v,"_jsPlumb_overlay");var u=d==null&&(r(v,"_jsPlumb_endpoint")||r(v,"_jsPlumb_connector"));if(!p&&u&&q._over(x)){p=true;q.fire("mouseenter",q,x);return true}else{if(p&&(!q._over(x)||!u)&&!y){p=false;q.fire("mouseexit",q,x)}}q.fire("mousemove",q,x)};this.click=function(u){if(p&&q._over(u)&&!s){q.fire("click",q,u)}s=false};this.dblclick=function(u){if(p&&q._over(u)&&!s){q.fire("dblclick",q,u)}s=false};this.mousedown=function(u){if(q._over(u)&&!o){o=true;t=m(a(q.canvas));q.fire("mousedown",q,u)}};this.mouseup=function(u){o=false;q.fire("mouseup",q,u)};this.contextmenu=function(u){if(p&&q._over(u)&&!s){q.fire("contextmenu",q,u)}s=false}};var c=function(p){var o=document.createElement("canvas");p._jsPlumb.appendElement(o,p.parent);o.style.position="absolute";if(p["class"]){o.className=p["class"]}p._jsPlumb.getId(o,p.uuid);if(p.tooltip){o.setAttribute("title",p.tooltip)}return o};var l=function(p){k.apply(this,arguments);var o=[];this.getDisplayElements=function(){return o};this.appendDisplayElement=function(q){o.push(q)}};var h=jsPlumb.CanvasConnector=function(r){l.apply(this,arguments);var o=function(v,t){p.ctx.save();jsPlumb.extend(p.ctx,t);if(t.gradient){var u=p.createGradient(v,p.ctx);for(var s=0;s0?c[0].tagName:null},getUIPosition:function(c,d){d=d||1;if(c.length==1){ret={left:c[0].pageX,top:c[0].pageY}}else{var e=c[1],b=e.offset;ret=b||e.absolutePosition;e.position.left/=d;e.position.top/=d}return{left:ret.left/d,top:ret.top/d}},hasClass:function(c,b){return c.hasClass(b)},initDraggable:function(c,b,d){b=b||{};b.helper=null;if(d){b.scope=b.scope||jsPlumb.Defaults.Scope}c.draggable(b)},initDroppable:function(c,b){b.scope=b.scope||jsPlumb.Defaults.Scope;c.droppable(b)},isAlreadyDraggable:function(b){b=jsPlumb.CurrentLibrary.getElementObject(b);return b.hasClass("ui-draggable")},isDragSupported:function(c,b){return c.draggable},isDropSupported:function(c,b){return c.droppable},removeClass:function(c,b){c=jsPlumb.CurrentLibrary.getElementObject(c);try{if(c[0].className.constructor==SVGAnimatedString){jsPlumbUtil.svg.removeClass(c[0],b)}}catch(d){}c.removeClass(b)},removeElement:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).remove()},setAttribute:function(c,d,b){c.attr(d,b)},setDraggable:function(c,b){c.draggable("option","disabled",!b)},setDragScope:function(c,b){c.draggable("option","scope",b)},setOffset:function(b,c){jsPlumb.CurrentLibrary.getElementObject(b).offset(c)},trigger:function(d,e,b){var c=jQuery._data(jsPlumb.CurrentLibrary.getElementObject(d)[0],"handle");c(b)},unbind:function(b,c,d){b=jsPlumb.CurrentLibrary.getElementObject(b);b.unbind(c,d)}};a(document).ready(jsPlumb.init)})(jQuery);(function(){"undefined"==typeof Math.sgn&&(Math.sgn=function(l){return 0==l?0:0=64){x[0]=(C[0].x+C[B].x)/2;return 1}var p,u=C[0].y-C[B].y;y=C[B].x-C[0].x;q=C[0].x*C[B].y-C[B].x*C[0].y;s=max_distance_below=0;for(p=1;ps?s=r:r0?1:-1,r=null;n1){l.location=1}if(l.location<0){l.location=0}return i(m,l.location)},nearestPointOnCurve:function(m,l){var n=h(m,l);return{point:k(l,l.length-1,n.location,null,null),location:n.location}},pointOnCurve:c,pointAlongCurveFrom:function(m,l,n){return b(m,l,n).point},perpendicularToCurveAt:function(m,l,n,o){l=b(m,l,o==null?0:o);m=i(m,l.location);o=Math.atan(-1/m);m=n/2*Math.sin(o);n=n/2*Math.cos(o);return[{x:l.point.x+n,y:l.point.y+m},{x:l.point.x-n,y:l.point.y-m}]},locationAlongCurveFrom:function(m,l,n){return b(m,l,n).location}}})(); \ No newline at end of file diff --git a/v3/js/jquery.qtip.min.js b/v3/js/jquery.qtip.min.js new file mode 100644 index 000000000..3971f6df5 --- /dev/null +++ b/v3/js/jquery.qtip.min.js @@ -0,0 +1,2 @@ +/*! qTip2 v2.0.0 | http://craigsworks.com/projects/qtip2/ | Licensed MIT, GPL */ +(function(a,b,c){(function(a){"use strict",typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)})(function(d){function I(a){var b=function(a){return a===g||"object"!=typeof a},c=function(a){return!d.isFunction(a)&&(!a&&!a.attr||a.length<1||"object"==typeof a&&!a.jquery)};if(!a||"object"!=typeof a)return f;b(a.metadata)&&(a.metadata={type:a.metadata});if("content"in a){if(b(a.content)||a.content.jquery)a.content={text:a.content};c(a.content.text||f)&&(a.content.text=f),"title"in a.content&&(b(a.content.title)&&(a.content.title={text:a.content.title}),c(a.content.title.text||f)&&(a.content.title.text=f))}return"position"in a&&b(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&b(a.show)&&(a.show=a.show.jquery?{target:a.show}:{event:a.show}),"hide"in a&&b(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&b(a.style)&&(a.style={classes:a.style}),d.each(u,function(){this.sanitize&&this.sanitize(a)}),a}function J(h,i,q,r){function Q(a){var b=0,c,d=i,e=a.split(".");while(d=d[e[b++]])b",{"class":"ui-state-default ui-tooltip-close "+(i.style.widget?"":x+"-icon"),title:c,"aria-label":c}).prepend(d("",{"class":"ui-icon ui-icon-close",html:"×"})),O.button.appendTo(O.titlebar).attr("role","button").click(function(a){return M.hasClass(z)||s.hide(a),f}),s.redraw()}function V(){var a=J+"-title";O.titlebar&&T(),O.titlebar=d("
      ",{"class":x+"-titlebar "+(i.style.widget?"ui-widget-header":"")}).append(O.title=d("
      ",{id:a,"class":x+"-title","aria-atomic":e})).insertBefore(O.content).delegate(".ui-tooltip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus",a.type.substr(-4)==="down")}).delegate(".ui-tooltip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover",a.type==="mouseover")}),i.content.title.button?U():s.rendered&&s.redraw()}function W(a){var b=O.button,c=O.title;if(!s.rendered)return f;a?(c||V(),U()):b.remove()}function X(a,b){var c=O.title;if(!s.rendered||!a)return f;d.isFunction(a)&&(a=a.call(h,P.event,s));if(a===f||!a&&a!=="")return T(f);a.jquery&&a.length>0?c.empty().append(a.css({display:"block"})):c.html(a),s.redraw(),b!==f&&s.rendered&&M[0].offsetWidth>0&&s.reposition(P.event)}function Y(a,b){function g(a){function i(c){c&&(delete h[c.src],clearTimeout(s.timers.img[c.src]),d(c).unbind(N)),d.isEmptyObject(h)&&(s.redraw(),b!==f&&s.reposition(P.event),a())}var g,h={};if((g=e.find("img[src]:not([height]):not([width])")).length===0)return i();g.each(function(a,b){if(h[b.src]!==c)return;var e=0,f=3;(function g(){if(b.height||b.width||e>f)return i(b);e+=1,s.timers.img[b.src]=setTimeout(g,700)})(),d(b).bind("error"+N+" load"+N,function(){i(this)}),h[b.src]=b})}var e=O.content;return!s.rendered||!a?f:(d.isFunction(a)&&(a=a.call(h,P.event,s)||""),a.jquery&&a.length>0?e.empty().append(a.css({display:"block"})):e.html(a),s.rendered<0?M.queue("fx",g):(L=0,g(d.noop)),s)}function Z(){function l(a){if(M.hasClass(z))return f;clearTimeout(s.timers.show),clearTimeout(s.timers.hide);var b=function(){s.toggle(e,a)};i.show.delay>0?s.timers.show=setTimeout(b,i.show.delay):b()}function m(a){if(M.hasClass(z)||K||L)return f;var b=d(a.relatedTarget||a.target),e=b.closest(A)[0]===M[0],h=b[0]===g.show[0];clearTimeout(s.timers.show),clearTimeout(s.timers.hide);if(c.target==="mouse"&&e||i.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(e||h)){try{a.preventDefault(),a.stopImmediatePropagation()}catch(j){}return}i.hide.delay>0?s.timers.hide=setTimeout(function(){s.hide(a)},i.hide.delay):s.hide(a)}function n(a){if(M.hasClass(z))return f;clearTimeout(s.timers.inactive),s.timers.inactive=setTimeout(function(){s.hide(a)},i.hide.inactive)}function o(a){s.rendered&&M[0].offsetWidth>0&&s.reposition(a)}var c=i.position,g={show:i.show.target,hide:i.hide.target,viewport:d(c.viewport),document:d(b),body:d(b.body),window:d(a)},j={show:d.trim(""+i.show.event).split(" "),hide:d.trim(""+i.hide.event).split(" ")},k=d.browser.msie&&parseInt(d.browser.version,10)===6;M.bind("mouseenter"+N+" mouseleave"+N,function(a){var b=a.type==="mouseenter";b&&s.focus(a),M.toggleClass(D,b)}),/mouse(out|leave)/i.test(i.hide.event)&&i.hide.leave==="window"&&g.window.bind("mouseout"+N+" blur"+N,function(a){!/select|option/.test(a.target.nodeName)&&!a.relatedTarget&&s.hide(a)}),i.hide.fixed?(g.hide=g.hide.add(M),M.bind("mouseover"+N,function(){M.hasClass(z)||clearTimeout(s.timers.hide)})):/mouse(over|enter)/i.test(i.show.event)&&g.hide.bind("mouseleave"+N,function(a){clearTimeout(s.timers.show)}),(""+i.hide.event).indexOf("unfocus")>-1&&c.container.closest("html").bind("mousedown"+N,function(a){var b=d(a.target),c=s.rendered&&!M.hasClass(z)&&M[0].offsetWidth>0,e=b.parents(A).filter(M[0]).length>0;b[0]!==h[0]&&b[0]!==M[0]&&!e&&!h.has(b[0]).length&&!b.attr("disabled")&&s.hide(a)}),"number"==typeof i.hide.inactive&&(g.show.bind("qtip-"+q+"-inactive",n),d.each(t.inactiveEvents,function(a,b){g.hide.add(O.tooltip).bind(b+N+"-inactive",n)})),d.each(j.hide,function(a,b){var c=d.inArray(b,j.show),e=d(g.hide);c>-1&&e.add(g.show).length===e.length||b==="unfocus"?(g.show.bind(b+N,function(a){M[0].offsetWidth>0?m(a):l(a)}),delete j.show[c]):g.hide.bind(b+N,m)}),d.each(j.show,function(a,b){g.show.bind(b+N,l)}),"number"==typeof i.hide.distance&&g.show.add(M).bind("mousemove"+N,function(a){var b=P.origin||{},c=i.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&s.hide(a)}),c.target==="mouse"&&(g.show.bind("mousemove"+N,function(a){v={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),c.adjust.mouse&&(i.hide.event&&(M.bind("mouseleave"+N,function(a){(a.relatedTarget||a.target)!==g.show[0]&&s.hide(a)}),O.target.bind("mouseenter"+N+" mouseleave"+N,function(a){P.onTarget=a.type==="mouseenter"})),g.document.bind("mousemove"+N,function(a){s.rendered&&P.onTarget&&!M.hasClass(z)&&M[0].offsetWidth>0&&s.reposition(a||v)}))),(c.adjust.resize||g.viewport.length)&&(d.event.special.resize?g.viewport:g.window).bind("resize"+N,o),(g.viewport.length||k&&M.css("position")==="fixed")&&g.viewport.bind("scroll"+N,o)}function _(){var c=[i.show.target[0],i.hide.target[0],s.rendered&&O.tooltip[0],i.position.container[0],i.position.viewport[0],i.position.container.closest("html")[0],a,b];s.rendered?d([]).pushStack(d.grep(c,function(a){return typeof a=="object"})).unbind(N):i.show.target.unbind(N+"-create")}var s=this,E=b.body,J=x+"-"+q,K=0,L=0,M=d(),N=".qtip-"+q,O,P;s.id=q,s.rendered=f,s.destroyed=f,s.elements=O={target:h},s.timers={img:{}},s.options=i,s.checks={},s.plugins={},s.cache=P={event:{},target:d(),disabled:f,attr:r,onTarget:f,lastClass:""},s.checks.builtin={"^id$":function(a,b,c){var g=c===e?t.nextid:c,h=x+"-"+g;g!==f&&g.length>0&&!d("#"+h).length&&(M[0].id=h,O.content[0].id=h+"-content",O.title[0].id=h+"-title")},"^content.text$":function(a,b,c){Y(c)},"^content.title.text$":function(a,b,c){if(!c)return T();!O.title&&c&&V(),X(c)},"^content.title.button$":function(a,b,c){W(c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(a[b]=new u.Corner(c))},"^position.container$":function(a,b,c){s.rendered&&M.appendTo(c)},"^show.ready$":function(){s.rendered?s.toggle(e):s.render(1)},"^style.classes$":function(a,b,c){M.attr("class",x+" qtip "+c)},"^style.widget|content.title":S,"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){M[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){var a=i.position;M.attr("tracking",a.target==="mouse"&&a.adjust.mouse),_(),Z()}},d.extend(s,{render:function(a){if(s.rendered)return s;var b=i.content.text,c=i.content.title.text,g=i.position;return d.attr(h[0],"aria-describedby",J),M=O.tooltip=d("
      ",{id:J,"class":x+" qtip "+B+" "+i.style.classes+" "+x+"-pos-"+i.position.my.abbrev(),width:i.style.width||"",height:i.style.height||"",tracking:g.target==="mouse"&&g.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":f,"aria-describedby":J+"-content","aria-hidden":e}).toggleClass(z,P.disabled).data("qtip",s).appendTo(i.position.container).append(O.content=d("
      ",{"class":x+"-content",id:J+"-content","aria-atomic":e})),s.rendered=-1,L=1,K=1,c&&(V(),d.isFunction(c)||X(c,f)),d.isFunction(b)||Y(b,f),s.rendered=e,S(),d.each(i.events,function(a,b){d.isFunction(b)&&M.bind(a==="toggle"?"tooltipshow tooltiphide":"tooltip"+a,b)}),d.each(u,function(){this.initialize==="render"&&this(s)}),Z(),M.queue("fx",function(b){R("render"),L=0,K=0,s.redraw(),(i.show.ready||a)&&s.toggle(e,P.event,f),b()}),s},get:function(a){var b,c;switch(a.toLowerCase()){case"dimensions":b={height:M.outerHeight(),width:M.outerWidth()};break;case"offset":b=u.offset(M,i.position.container);break;default:c=Q(a.toLowerCase()),b=c[0][c[1]],b=b.precedance?b.string():b}return b},set:function(a,b){function n(a,b){var c,d,e;for(c in l)for(d in l[c])if(e=(new RegExp(d,"i")).exec(a))b.push(e),l[c][d].apply(s,b)}var c=/^position\.(my|at|adjust|target|container)|style|content|show\.ready/i,h=/^content\.(title|attr)|style/i,j=f,k=f,l=s.checks,m;return"string"==typeof a?(m=a,a={},a[m]=b):a=d.extend(e,{},a),d.each(a,function(b,e){var f=Q(b.toLowerCase()),g;g=f[0][f[1]],f[0][f[1]]="object"==typeof e&&e.nodeType?d(e):e,a[b]=[f[0],f[1],e,g],j=c.test(b)||j,k=h.test(b)||k}),I(i),K=L=1,d.each(a,n),K=L=0,s.rendered&&M[0].offsetWidth>0&&(j&&s.reposition(i.position.target==="mouse"?g:P.event),k&&s.redraw()),s},toggle:function(a,c){function t(){a?(d.browser.msie&&M[0].style.removeAttribute("filter"),M.css("overflow",""),"string"==typeof h.autofocus&&d(h.autofocus,M).focus(),h.target.trigger("qtip-"+q+"-inactive")):M.css({display:"",visibility:"",opacity:"",left:"",top:""}),R(a?"visible":"hidden")}if(!s.rendered)return a?s.render(1):s;var g=a?"show":"hide",h=i[g],j=i[a?"hide":"show"],k=i.position,l=i.content,m=M[0].offsetWidth>0,n=a||h.target.length===1,o=!c||h.target.length<2||P.target[0]===c.target,p,r;(typeof a).search("boolean|number")&&(a=!m);if(!M.is(":animated")&&m===a&&o)return s;if(c){if(/over|enter/.test(c.type)&&/out|leave/.test(P.event.type)&&i.show.target.add(c.target).length===i.show.target.length&&M.has(c.relatedTarget).length)return s;P.event=d.extend({},c)}return R(g,[90])?(d.attr(M[0],"aria-hidden",!a),a?(P.origin=d.extend({},v),s.focus(c),d.isFunction(l.text)&&Y(l.text,f),d.isFunction(l.title.text)&&X(l.title.text,f),!G&&k.target==="mouse"&&k.adjust.mouse&&(d(b).bind("mousemove.qtip",function(a){v={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),G=e),s.reposition(c,arguments[2]),!h.solo||d(A,h.solo).not(M).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(s.timers.show),delete P.origin,G&&!d(A+'[tracking="true"]:visible',h.solo).not(M).length&&(d(b).unbind("mousemove.qtip"),G=f),s.blur(c)),h.effect===f||n===f?(M[g](),t.call(M)):d.isFunction(h.effect)?(M.stop(1,1),h.effect.call(M,s),M.queue("fx",function(a){t(),a()})):M.fadeTo(90,a?1:0,t),a&&h.target.trigger("qtip-"+q+"-inactive"),s):s},show:function(a){return s.toggle(e,a)},hide:function(a){return s.toggle(f,a)},focus:function(a){if(!s.rendered)return s;var b=d(A),c=parseInt(M[0].style.zIndex,10),e=t.zindex+b.length,f=d.extend({},a),g;return M.hasClass(C)||R("focus",[e],f)&&(c!==e&&(b.each(function(){this.style.zIndex>c&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+C).qtip("blur",f)),M.addClass(C)[0].style.zIndex=e),s},blur:function(a){return M.removeClass(C),R("blur",[M.css("zIndex")],a),s},reposition:function(c,e){if(!s.rendered||K)return s;K=1;var g=i.position.target,h=i.position,j=h.my,k=h.at,q=h.adjust,r=q.method.split(" "),t=M.outerWidth(),w=M.outerHeight(),x=0,y=0,z=M.css("position")==="fixed",A=h.viewport,B={left:0,top:0},C=h.container,D=M[0].offsetWidth>0,E,F,G;if(d.isArray(g)&&g.length===2)k={x:m,y:l},B={left:g[0],top:g[1]};else if(g==="mouse"&&(c&&c.pageX||P.event.pageX))k={x:m,y:l},c=(c&&(c.type==="resize"||c.type==="scroll")?P.event:c&&c.pageX&&c.type==="mousemove"?c:v&&v.pageX&&(q.mouse||!c||!c.pageX)?{pageX:v.pageX,pageY:v.pageY}:!q.mouse&&P.origin&&P.origin.pageX&&i.show.distance?P.origin:c)||c||P.event||v||{},B={top:c.pageY,left:c.pageX};else{g==="event"&&c&&c.target&&c.type!=="scroll"&&c.type!=="resize"?P.target=d(c.target):g!=="event"&&(P.target=d(g.jquery?g:O.target)),g=P.target,g=d(g).eq(0);if(g.length===0)return s;g[0]===b||g[0]===a?(x=u.iOS?a.innerWidth:g.width(),y=u.iOS?a.innerHeight:g.height(),g[0]===a&&(B={top:(A||g).scrollTop(),left:(A||g).scrollLeft()})):u.imagemap&&g.is("area")?E=u.imagemap(s,g,k,u.viewport?r:f):u.svg&&typeof g[0].xmlbase=="string"?E=u.svg(s,g,k,u.viewport?r:f):(x=g.outerWidth(),y=g.outerHeight(),B=u.offset(g,C)),E&&(x=E.width,y=E.height,F=E.offset,B=E.position);if(u.iOS>3.1&&u.iOS<4.1||u.iOS>=4.3&&u.iOS<4.33||!u.iOS&&z)G=d(a),B.left-=G.scrollLeft(),B.top-=G.scrollTop();B.left+=k.x===o?x:k.x===p?x/2:0,B.top+=k.y===n?y:k.y===p?y/2:0}return B.left+=q.x+(j.x===o?-t:j.x===p?-t/2:0),B.top+=q.y+(j.y===n?-w:j.y===p?-w/2:0),u.viewport?(B.adjusted=u.viewport(s,B,h,x,y,t,w),F&&B.adjusted.left&&(B.left+=F.left),F&&B.adjusted.top&&(B.top+=F.top)):B.adjusted={left:0,top:0},R("move",[B,A.elem||A],c)?(delete B.adjusted,e===f||!D||isNaN(B.left)||isNaN(B.top)||g==="mouse"||!d.isFunction(h.effect)?M.css(B):d.isFunction(h.effect)&&(h.effect.call(M,s,d.extend({},B)),M.queue(function(a){d(this).css({opacity:"",height:""}),d.browser.msie&&this.style.removeAttribute("filter"),a()})),K=0,s):s},redraw:function(){if(s.rendered<1||L)return s;var a=i.style,b=i.position.container,c,d,e,f;return L=1,R("redraw"),a.height&&M.css(k,a.height),a.width?M.css(j,a.width):(M.css(j,"").appendTo(H),d=M.width(),d%2<1&&(d+=1),e=M.css("max-width")||"",f=M.css("min-width")||"",c=(e+f).indexOf("%")>-1?b.width()/100:0,e=(e.indexOf("%")>-1?c:1)*parseInt(e,10)||d,f=(f.indexOf("%")>-1?c:1)*parseInt(f,10)||0,d=e+f?Math.min(Math.max(d,f),e):d,M.css(j,Math.round(d)).appendTo(b)),R("redrawn"),L=0,s},disable:function(a){return"boolean"!=typeof a&&(a=!M.hasClass(z)&&!P.disabled),s.rendered?(M.toggleClass(z,a),d.attr(M[0],"aria-disabled",a)):P.disabled=!!a,s},enable:function(){return s.disable(f)},destroy:function(){var a=h[0],b=d.attr(a,F),c=h.data("qtip");s.destroyed=e,s.rendered&&(M.stop(1,0).remove(),d.each(s.plugins,function(){this.destroy&&this.destroy()})),clearTimeout(s.timers.show),clearTimeout(s.timers.hide),_();if(!c||s===c)d.removeData(a,"qtip"),i.suppress&&b&&(d.attr(a,"title",b),h.removeAttr(F)),h.removeAttr("aria-describedby");return h.unbind(".qtip-"+q),delete w[s.id],h}})}function K(a,c){var h,i,j,k,l,m=d(this),n=d(b.body),o=this===b?n:m,p=m.metadata?m.metadata(c.metadata):g,q=c.metadata.type==="html5"&&p?p[c.metadata.name]:g,r=m.data(c.metadata.name||"qtipopts");try{r=typeof r=="string"?d.parseJSON(r):r}catch(s){}k=d.extend(e,{},t.defaults,c,typeof r=="object"?I(r):g,I(q||p)),i=k.position,k.id=a;if("boolean"==typeof k.content.text){j=m.attr(k.content.attr);if(k.content.attr!==f&&j)k.content.text=j;else return f}i.container.length||(i.container=n),i.target===f&&(i.target=o),k.show.target===f&&(k.show.target=o),k.show.solo===e&&(k.show.solo=i.container.closest("body")),k.hide.target===f&&(k.hide.target=o),k.position.viewport===e&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new u.Corner(i.at),i.my=new u.Corner(i.my);if(d.data(this,"qtip"))if(k.overwrite)m.qtip("destroy");else if(k.overwrite===f)return f;return k.suppress&&(l=d.attr(this,"title"))&&d(this).removeAttr("title").attr(F,l).attr("title",""),h=new J(m,k,a,!!j),d.data(this,"qtip",h),m.bind("remove.qtip-"+a+" removeqtip.qtip-"+a,function(){h.destroy()}),h}function L(a){var b=this,c=a.elements.tooltip,g=a.options.content.ajax,h=t.defaults.content.ajax,i=".qtip-ajax",j=/)<[^<]*)*<\/script>/gi,k=e,l=f,m;a.checks.ajax={"^content.ajax":function(a,d,e){d==="ajax"&&(g=e),d==="once"?b.init():g&&g.url?b.load():c.unbind(i)}},d.extend(b,{init:function(){return g&&g.url&&c.unbind(i)[g.once?"one":"bind"]("tooltipshow"+i,b.load),b},load:function(c){function r(){var b;if(a.destroyed)return;k=f,p&&(l=e,a.show(c.originalEvent)),(b=h.complete||g.complete)&&d.isFunction(b)&&b.apply(g.context||a,arguments)}function s(b,c,e){var f;if(a.destroyed)return;o&&"string"==typeof b&&(b=d("
      ").append(b.replace(j,"")).find(o)),(f=h.success||g.success)&&d.isFunction(f)?f.call(g.context||a,b,c,e):a.set("content.text",b)}function t(b,c,d){if(a.destroyed||b.status===0)return;a.set("content.text",c+": "+d)}if(l){l=f;return}var i=g.url.lastIndexOf(" "),n=g.url,o,p=!g.loading&&k;if(p)try{c.preventDefault()}catch(q){}else if(c&&c.isDefaultPrevented())return b;m&&m.abort&&m.abort(),i>-1&&(o=n.substr(i),n=n.substr(0,i)),m=d.ajax(d.extend({error:h.error||t,context:a},g,{url:n,success:s,complete:r}))},destroy:function(){m&&m.abort&&m.abort(),a.destroyed=e}}),b.init()}function M(a,b,c){var d=Math.ceil(b/2),e=Math.ceil(c/2),f={bottomright:[[0,0],[b,c],[b,0]],bottomleft:[[0,0],[b,0],[0,c]],topright:[[0,c],[b,0],[b,c]],topleft:[[0,0],[0,c],[b,c]],topcenter:[[0,c],[d,0],[b,c]],bottomcenter:[[0,0],[b,0],[d,c]],rightcenter:[[0,0],[b,e],[0,c]],leftcenter:[[b,0],[b,c],[0,e]]};return f.lefttop=f.bottomright,f.righttop=f.bottomleft,f.leftbottom=f.topright,f.rightbottom=f.topleft,f[a.string()]}function N(a,b){function D(a){var b=v.is(":visible");v.show(),a(),v.toggle(b)}function E(){x.width=r.height,x.height=r.width}function F(){x.width=r.width,x.height=r.height}function G(b,d,g,j){if(!t.tip)return;var k=q.corner.clone(),u=g.adjusted,v=a.options.position.adjust.method.split(" "),x=v[0],y=v[1]||v[0],z={left:f,top:f,x:0,y:0},A,B={},C;q.corner.fixed!==e&&(x===s&&k.precedance===h&&u.left&&k.y!==p?k.precedance=k.precedance===h?i:h:x!==s&&u.left&&(k.x=k.x===p?u.left>0?m:o:k.x===m?o:m),y===s&&k.precedance===i&&u.top&&k.x!==p?k.precedance=k.precedance===i?h:i:y!==s&&u.top&&(k.y=k.y===p?u.top>0?l:n:k.y===l?n:l),k.string()!==w.corner.string()&&(w.top!==u.top||w.left!==u.left)&&q.update(k,f)),A=q.position(k,u),A[k.x]+=I(k,k.x),A[k.y]+=I(k,k.y),A.right!==c&&(A.left=-A.right),A.bottom!==c&&(A.top=-A.bottom),A.user=Math.max(0,r.offset);if(z.left=x===s&&!!u.left)k.x===p?B["margin-left"]=z.x=A["margin-left"]-u.left:(C=A.right!==c?[u.left,-A.left]:[-u.left,A.left],(z.x=Math.max(C[0],C[1]))>C[0]&&(g.left-=u.left,z.left=f),B[A.right!==c?o:m]=z.x);if(z.top=y===s&&!!u.top)k.y===p?B["margin-top"]=z.y=A["margin-top"]-u.top:(C=A.bottom!==c?[u.top,-A.top]:[-u.top,A.top],(z.y=Math.max(C[0],C[1]))>C[0]&&(g.top-=u.top,z.top=f),B[A.bottom!==c?n:l]=z.y);t.tip.css(B).toggle(!(z.x&&z.y||k.x===p&&z.y||k.y===p&&z.x)),g.left-=A.left.charAt?A.user:x!==s||z.top||!z.left&&!z.top?A.left:0,g.top-=A.top.charAt?A.user:y!==s||z.left||!z.left&&!z.top?A.top:0,w.left=u.left,w.top=u.top,w.corner=k.clone()}function H(){var b=r.corner,c=a.options.position,d=c.at,g=c.my.string?c.my.string():c.my;return b===f||g===f&&d===f?f:(b===e?q.corner=new u.Corner(g):b.string||(q.corner=new u.Corner(b),q.corner.fixed=e),w.corner=new u.Corner(q.corner.string()),q.corner.string()!=="centercenter")}function I(a,b,c){b=b?b:a[a.precedance];var d=t.titlebar&&a.y===l,e=d?t.titlebar:v,f="border-"+b+"-width",g=function(a){return parseInt(a.css(f),10)},h;return D(function(){h=(c?g(c):g(t.content)||g(e)||g(v))||0}),h}function J(a){var b=t.titlebar&&a.y===l,c=b?t.titlebar:t.content,e=d.browser.mozilla,f=e?"-moz-":d.browser.webkit?"-webkit-":"",g="border-radius-"+a.y+a.x,h="border-"+a.y+"-"+a.x+"-radius",i=function(a){return parseInt(c.css(a),10)||parseInt(v.css(a),10)},j;return D(function(){j=i(h)||i(f+h)||i(f+g)||i(g)||0}),j}function K(a){function z(a,b,c){var d=a.css(b)||n;return c&&d===a.css(c)?f:j.test(d)?f:d}var b,c,g,h=t.tip.css("cssText",""),i=a||q.corner,j=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,k="border-"+i[i.precedance]+"-color",m="background-color",n="transparent",o=" !important",s=t.titlebar,u=s&&(i.y===l||i.y===p&&h.position().top+x.height/2+r.offset-1,f=c*(e?.5:1),g=Math.pow,h=Math.round,l,m,n,o=Math.sqrt(g(f,2)+g(d,2)),q=[z/f*o,z/d*o];return q[2]=Math.sqrt(g(q[0],2)-g(z,2)),q[3]=Math.sqrt(g(q[1],2)-g(z,2)),l=o+q[2]+q[3]+(e?0:q[0]),m=l/o,n=[h(m*d),h(m*c)],{height:n[b?0:1],width:n[b?1:0]}}function N(a,b,c){return"'}var q=this,r=a.options.style.tip,t=a.elements,v=t.tooltip,w={top:0,left:0},x={width:r.width,height:r.height},y={},z=r.border||0,A=".qtip-tip",B=!!(d("")[0]||{}).getContext,C;q.corner=g,q.mimic=g,q.border=z,q.offset=r.offset,q.size=x,a.checks.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){q.init()||q.destroy(),a.reposition()},"^style.tip.(height|width)$":function(){x={width:r.width,height:r.height},q.create(),q.update(),a.reposition()},"^content.title.text|style.(classes|widget)$":function(){t.tip&&t.tip.length&&q.update()}},d.extend(q,{init:function(){var a=H()&&(B||d.browser.msie);return a&&(q.create(),q.update(),v.unbind(A).bind("tooltipmove"+A,G),B||v.bind("tooltipredraw tooltipredrawn",function(a){a.type==="tooltipredraw"?(C=t.tip.html(),t.tip.html("")):t.tip.html(C)})),a},create:function(){var a=x.width,b=x.height,c;t.tip&&t.tip.remove(),t.tip=d("
      ",{"class":"ui-tooltip-tip"}).css({width:a,height:b}).prependTo(v),B?d("").appendTo(t.tip)[0].getContext("2d").save():(c=N("shape",'coordorigin="0,0"',"position:absolute;"),t.tip.html(c+c),d("*",t.tip).bind("click mousedown",function(a){a.stopPropagation()}))},update:function(a,b){var c=t.tip,j=c.children(),k=x.width,s=x.height,A=r.mimic,C=Math.round,D,G,H,J,O;a||(a=w.corner||q.corner),A===f?A=a:(A=new u.Corner(A),A.precedance=a.precedance,A.x==="inherit"?A.x=a.x:A.y==="inherit"?A.y=a.y:A.x===A.y&&(A[a.precedance]=a[a.precedance])),D=A.precedance,a.precedance===h?E():F(),t.tip.css({width:k=x.width,height:s=x.height}),K(a),y.border!=="transparent"?(z=I(a,g),r.border===0&&z>0&&(y.fill=y.border),q.border=z=r.border!==e?r.border:z):q.border=z=0,H=M(A,k,s),q.size=O=L(a),c.css(O),a.precedance===i?J=[C(A.x===m?z:A.x===o?O.width-k-z:(O.width-k)/2),C(A.y===l?O.height-s:0)]:J=[C(A.x===m?O.width-k:0),C(A.y===l?z:A.y===n?O.height-s-z:(O.height-s)/2)],B?(j.attr(O),G=j[0].getContext("2d"),G.restore(),G.save(),G.clearRect(0,0,3e3,3e3),G.fillStyle=y.fill,G.strokeStyle=y.border,G.lineWidth=z*2,G.lineJoin="miter",G.miterLimit=100,G.translate(J[0],J[1]),G.beginPath(),G.moveTo(H[0][0],H[0][1]),G.lineTo(H[1][0],H[1][1]),G.lineTo(H[2][0],H[2][1]),G.closePath(),z&&(v.css("background-clip")==="border-box"&&(G.strokeStyle=y.fill,G.stroke()),G.strokeStyle=y.border,G.stroke()),G.fill()):(H="m"+H[0][0]+","+H[0][1]+" l"+H[1][0]+","+H[1][1]+" "+H[2][0]+","+H[2][1]+" xe",J[2]=z&&/^(r|b)/i.test(a.string())?parseFloat(d.browser.version,10)===8?2:1:0,j.css({coordsize:k+z+" "+(s+z),antialias:""+(A.string().indexOf(p)>-1),left:J[0],top:J[1],width:k+z,height:s+z}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k+z+" "+(s+z),path:H,fillcolor:y.fill,filled:!!a,stroked:!a}).toggle(!!z||!!a),!a&&b.html()===""&&b.html(N("stroke",'weight="'+z*2+'px" color="'+y.border+'" miterlimit="1000" joinstyle="miter"'))})),b!==f&&q.position(a)},position:function(a){var b=t.tip,c={},e=Math.max(0,r.offset),g,n,o;return r.corner===f||!b?f:(a=a||q.corner,g=a.precedance,n=L(a),o=[a.x,a.y],g===h&&o.reverse(),d.each(o,function(b,d){var f,h,o;d===p?(f=g===i?m:l,c[f]="50%",c["margin-"+f]=-Math.round(n[g===i?j:k]/2)+e):(f=I(a,d),h=I(a,d,t.content),o=J(a),c[d]=b?h:e+(o>f?o:-f))}),c[a[g]]-=n[g===h?j:k],b.css({top:"",bottom:"",left:"",right:"",margin:""}).css(c),c)},destroy:function(){t.tip&&t.tip.remove(),t.tip=!1,v.unbind(A)}}),q.init()}function O(c){function s(){q=d(p,j).not("[disabled]").map(function(){return typeof this.focus=="function"?this:null})}function t(a){q.length<1&&a.length?a.not("body").blur():q.first().focus()}function v(a){var b=d(a.target),c=b.closest(".qtip"),e;e=c.length<1?f:parseInt(c[0].style.zIndex,10)>parseInt(j[0].style.zIndex,10),!e&&d(a.target).closest(A)[0]!==j[0]&&t(b)}var g=this,h=c.options.show.modal,i=c.elements,j=i.tooltip,k="#qtip-overlay",l=".qtipmodal",m=l+c.id,n="is-modal-qtip",o=d(b.body),p=u.modal.focusable.join(","),q={},r;c.checks.modal={"^show.modal.(on|blur)$":function(){g.init(),i.overlay.toggle(j.is(":visible"))},"^content.text$":function(){s()}},d.extend(g,{init:function(){return h.on?(r=g.create(),j.attr(n,e).css("z-index",u.modal.zindex+d(A+"["+n+"]").length).unbind(l).unbind(m).bind("tooltipshow"+l+" tooltiphide"+l,function(a,b,c){var e=a.originalEvent;if(a.target===j[0])if(e&&a.type==="tooltiphide"&&/mouse(leave|enter)/.test(e.type)&&d(e.relatedTarget).closest(r[0]).length)try{a.preventDefault()}catch(f){}else(!e||e&&!e.solo)&&g[a.type.replace("tooltip","")](a,c)}).bind("tooltipfocus"+l,function(a){if(a.isDefaultPrevented()||a.target!==j[0])return;var b=d(A).filter("["+n+"]"),c=u.modal.zindex+b.length,e=parseInt(j[0].style.zIndex,10);r[0].style.zIndex=c-2,b.each(function(){this.style.zIndex>e&&(this.style.zIndex-=1)}),b.end().filter("."+C).qtip("blur",a.originalEvent),j.addClass(C)[0].style.zIndex=c;try{a.preventDefault()}catch(f){}}).bind("tooltiphide"+l,function(a){a.target===j[0]&&d("["+n+"]").filter(":visible").not(j).last().qtip("focus",a)}),h.escape&&d(b).unbind(m).bind("keydown"+m,function(a){a.keyCode===27&&j.hasClass(C)&&c.hide(a)}),h.blur&&i.overlay.unbind(m).bind("click"+m,function(a){j.hasClass(C)&&c.hide(a)}),s(),g):g},create:function(){function c(){r.css({height:d(a).height(),width:d(a).width()})}var b=d(k);return b.length?i.overlay=b.insertAfter(d(A).last()):(r=i.overlay=d("
      ",{id:k.substr(1),html:"
      ",mousedown:function(){return f}}).hide().insertAfter(d(A).last()),d(a).unbind(l).bind("resize"+l,c),c(),r)},toggle:function(a,b,c){if(a&&a.isDefaultPrevented())return g;var i=h.effect,k=b?"show":"hide",l=r.is(":visible"),p=d("["+n+"]").filter(":visible").not(j),q;return r||(r=g.create()),r.is(":animated")&&l===b||!b&&p.length?g:(b?(r.css({left:0,top:0}),r.toggleClass("blurs",h.blur),h.stealfocus!==f&&(o.bind("focusin"+m,v),t(d("body :focus")))):o.unbind("focusin"+m),r.stop(e,f),d.isFunction(i)?i.call(r,b):i===f?r[k]():r.fadeTo(parseInt(c,10)||90,b?1:0,function(){b||d(this).hide()}),b||r.queue(function(a){r.css({left:"",top:""}),a()}),g)},show:function(a,b){return g.toggle(a,e,b)},hide:function(a,b){return g.toggle(a,f,b)},destroy:function(){var a=r;return a&&(a=d("["+n+"]").not(j).length<1,a?(i.overlay.remove(),d(b).unbind(l)):i.overlay.unbind(l+c.id),o.undelegate("*","focusin"+m)),j.removeAttr(n).unbind(l)}}),g.init()}function P(a){var b=this,c=a.elements,e=c.tooltip,f=".bgiframe-"+a.id;d.extend(b,{init:function(){c.bgiframe=d(''),c.bgiframe.appendTo(e),e.bind("tooltipmove"+f,b.adjust)},adjust:function(){var b=a.get("dimensions"),d=a.plugins.tip,f=c.tip,g,h;h=parseInt(e.css("border-left-width"),10)||0,h={left:-h,top:-h},d&&f&&(g=d.corner.precedance==="x"?["width","left"]:["height","top"],h[g[1]]-=f[g[0]]()),c.bgiframe.css(h).css(b)},destroy:function(){c.bgiframe.remove(),e.unbind(f)}}),b.init()}var e=!0,f=!1,g=null,h="x",i="y",j="width",k="height",l="top",m="left",n="bottom",o="right",p="center",q="flip",r="flipinvert",s="shift",t,u,v,w={},x="ui-tooltip",y="ui-widget",z="ui-state-disabled",A="div.qtip."+x,B=x+"-default",C=x+"-focus",D=x+"-hover",E="_replacedByqTip",F="oldtitle",G,H;H=d("
      ",{id:"qtip-rcontainer"}),d(function(){H.appendTo(b.body)}),t=d.fn.qtip=function(a,b,h){var i=(""+a).toLowerCase(),j=g,k=d.makeArray(arguments).slice(1),l=k[k.length-1],m=this[0]?d.data(this[0],"qtip"):g;if(!arguments.length&&m||i==="api")return m;if("string"==typeof a)return this.each(function(){var a=d.data(this,"qtip");if(!a)return e;l&&l.timeStamp&&(a.cache.event=l);if(i!=="option"&&i!=="options"||!b)a[i]&&a[i].apply(a[i],k);else if(d.isPlainObject(b)||h!==c)a.set(b,h);else return j=a.get(b),f}),j!==g?j:this;if("object"==typeof a||!arguments.length)return m=I(d.extend(e,{},a)),t.bind.call(this,m,l)},t.bind=function(a,b){return this.each(function(g){function n(a){function b(){l.render(typeof a=="object"||h.show.ready),i.show.add(i.hide).unbind(k)}if(l.cache.disabled)return f;l.cache.event=d.extend({},a),l.cache.target=a?d(a.target):[c],h.show.delay>0?(clearTimeout(l.timers.show),l.timers.show=setTimeout(b,h.show.delay),j.show!==j.hide&&i.hide.bind(j.hide,function(){clearTimeout(l.timers.show)})):b()}var h,i,j,k,l,m;m=d.isArray(a.id)?a.id[g]:a.id,m=!m||m===f||m.length<1||w[m]?t.nextid++:w[m]=m,k=".qtip-"+m+"-create",l=K.call(this,m,a);if(l===f)return e;h=l.options,d.each(u,function(){this.initialize==="initialize"&&this(l)}),i={show:h.show.target,hide:h.hide.target},j={show:d.trim(""+h.show.event).replace(/ /g,k+" ")+k,hide:d.trim(""+h.hide.event).replace(/ /g,k+" ")+k},/mouse(over|enter)/i.test(j.show)&&!/mouse(out|leave)/i.test(j.hide)&&(j.hide+=" mouseleave"+k),i.show.bind("mousemove"+k,function(a){v={pageX:a.pageX,pageY:a.pageY,type:"mousemove"},l.cache.onTarget=e}),i.show.bind(j.show,n),(h.show.ready||h.prerender)&&n(b)})},u=t.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,p).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase();var b=a.charAt(0);this.precedance=b==="t"||b==="b"?i:h,this.string=function(){return this.precedance===i?this.y+this.x:this.x+this.y},this.abbrev=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:this.precedance===i?b+a:a+b},this.invertx=function(a){this.x=this.x===m?o:this.x===o?m:a||this.x},this.inverty=function(a){this.y=this.y===l?n:this.y===n?l:a||this.y},this.clone=function(){return{x:this.x,y:this.y,precedance:this.precedance,string:this.string,abbrev:this.abbrev,clone:this.clone,invertx:this.invertx,inverty:this.inverty}}},offset:function(a,b){function j(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}var c=a.offset(),e=a.closest("body")[0],f=b,g,h,i;if(f){do f.css("position")!=="static"&&(h=f.position(),c.left-=h.left+(parseInt(f.css("borderLeftWidth"),10)||0)+(parseInt(f.css("marginLeft"),10)||0),c.top-=h.top+(parseInt(f.css("borderTopWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0),!g&&(i=f.css("overflow"))!=="hidden"&&i!=="visible"&&(g=f));while((f=d(f[0].offsetParent)).length);g&&g[0]!==e&&j(g,1)}return c},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||f,fn:{attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,F):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(F,b))}return d.fn["attr"+E].apply(this,arguments)},clone:function(a){var b=d([]),c="title",e=d.fn["clone"+E].apply(this,arguments);return a||e.filter("["+F+"]").attr("title",function(){return d.attr(this,F)}).removeAttr(F),e}}},d.each(u.fn,function(a,b){if(!b||d.fn[a+E])return e;var c=d.fn[a+E]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+E]=d.cleanData,d.cleanData=function(a){for(var b=0,e;(e=a[b])!==c;b++)try{d(e).triggerHandler("removeqtip")}catch(f){}d["cleanData"+E](a)}),t.version="@VERSION",t.nextid=0,t.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),t.zindex=15e3,t.defaults={prerender:f,id:f,overwrite:e,suppress:e,content:{text:e,attr:"title",title:{text:f,button:f}},position:{my:"top left",at:"bottom right",target:f,container:f,viewport:f,adjust:{x:0,y:0,mouse:e,resize:e,method:"flip flip"},effect:function(a,b,c){d(this).animate(b,{duration:200,queue:f})}},show:{target:f,event:"mouseenter",effect:e,delay:90,solo:f,ready:f,autofocus:f},hide:{target:f,event:"mouseleave",effect:e,delay:0,fixed:f,inactive:f,leave:"window",distance:f},style:{classes:"",widget:f,width:f,height:f,def:e},events:{render:g,move:g,show:g,hide:g,toggle:g,visible:g,hidden:g,focus:g,blur:g}},u.svg=function(a,c,e,f){var g=d(b),h=c[0],i={width:0,height:0,position:{top:1e10,left:1e10}},j,k,l,m,n;while(!h.getBBox)h=h.parentNode;if(h.getBBox&&h.parentNode){j=h.getBBox(),k=h.getScreenCTM(),l=h.farthestViewportElement||h;if(!l.createSVGPoint)return i;m=l.createSVGPoint(),m.x=j.x,m.y=j.y,n=m.matrixTransform(k),i.position.left=n.x,i.position.top=n.y,m.x+=j.width,m.y+=j.height,n=m.matrixTransform(k),i.width=n.x-i.position.left,i.height=n.y-i.position.top,i.position.left+=g.scrollLeft(),i.position.top+=g.scrollTop()}return i},u.ajax=function(a){var b=a.plugins.ajax;return"object"==typeof b?b:a.plugins.ajax=new L(a)},u.ajax.initialize="render",u.ajax.sanitize=function(a){var b=a.content,c;b&&"ajax"in b&&(c=b.ajax,typeof c!="object"&&(c=a.content.ajax={url:c}),"boolean"!=typeof c.once&&c.once&&(c.once=!!c.once))},d.extend(e,t.defaults,{content:{ajax:{loading:e,once:e}}}),u.tip=function(a){var b=a.plugins.tip;return"object"==typeof b?b:a.plugins.tip=new N(a)},u.tip.initialize="render",u.tip.sanitize=function(a){var b=a.style,c;b&&"tip"in b&&(c=a.style.tip,typeof c!="object"&&(a.style.tip={corner:c}),/string|boolean/i.test(typeof c.corner)||(c.corner=e),typeof c.width!="number"&&delete c.width,typeof c.height!="number"&&delete c.height,typeof c.border!="number"&&c.border!==e&&delete c.border,typeof c.offset!="number"&&delete c.offset)},d.extend(e,t.defaults,{style:{tip:{corner:e,mimic:f,width:6,height:6,border:e,offset:0}}}),u.modal=function(a){var b=a.plugins.modal;return"object"==typeof b?b:a.plugins.modal=new O(a)},u.modal.initialize="render",u.modal.sanitize=function(a){a.show&&(typeof a.show.modal!="object"?a.show.modal={on:!!a.show.modal}:typeof a.show.modal.on=="undefined"&&(a.show.modal.on=e))},u.modal.zindex=t.zindex-200,u.modal.focusable=["a[href]","area[href]","input","select","textarea","button","iframe","object","embed","[tabindex]","[contenteditable]"],d.extend(e,t.defaults,{show:{modal:{on:f,effect:e,blur:e,stealfocus:e,escape:e}}}),u.viewport=function(c,d,e,f,g,q,t){function L(a,b,c,e,f,g,h,i,j){var k=d[f],l=w[a],m=y[a],n=c===s,o=-E.offset[f]+D.offset[f]+D["scroll"+f],q=l===f?j:l===g?-j:-j/2,t=m===f?i:m===g?-i:-i/2,u=G&&G.size?G.size[h]||0:0,v=G&&G.corner&&G.corner.precedance===a&&!n?u:0,x=o-k+v,z=k+j-D[h]-o+v,A=q-(w.precedance===a||l===w[b]?t:0)-(m===p?i/2:0);return n?(v=G&&G.corner&&G.corner.precedance===b?u:0,A=(l===f?1:-1)*q-v,d[f]+=x>0?x:z>0?-z:0,d[f]=Math.max(-E.offset[f]+D.offset[f]+(v&&G.corner[a]===p?G.offset:0),k-A,Math.min(Math.max(-E.offset[f]+D.offset[f]+D[h],k+A),d[f]))):(e*=c===r?2:0,x>0&&(l!==f||z>0)?(d[f]-=A+e,J["invert"+a](f)):z>0&&(l!==g||x>0)&&(d[f]-=(l===p?-A:A)+e,J["invert"+a](g)),d[f]z&&(d[f]=k,J=w.clone())),d[f]-k}var u=e.target,v=c.elements.tooltip,w=e.my,y=e.at,z=e.adjust,A=z.method.split(" "),B=A[0],C=A[1]||A[0],D=e.viewport,E=e.container,F=c.cache,G=c.plugins.tip,H={left:0,top:0},I,J,K;if(!D.jquery||u[0]===a||u[0]===b.body||z.method==="none")return H;I=v.css("position")==="fixed",D={elem:D,height:D[(D[0]===a?"h":"outerH")+"eight"](),width:D[(D[0]===a?"w":"outerW")+"idth"](),scrollleft:I?0:D.scrollLeft(),scrolltop:I?0:D.scrollTop(),offset:D.offset()||{left:0,top:0}},E={elem:E,scrollLeft:E.scrollLeft(),scrollTop:E.scrollTop(),offset:E.offset()||{left:0,top:0}};if(B!=="shift"||C!=="shift")J=w.clone();return H={left:B!=="none"?L(h,i,B,z.x,m,o,j,f,q):0,top:C!=="none"?L(i,h,C,z.y,l,n,k,g,t):0},J&&F.lastClass!==(K=x+"-pos-"+J.abbrev())&&v.removeClass(c.cache.lastClass).addClass(c.cache.lastClass=K),H},u.imagemap=function(a,b,c,e){function v(a,b,c){var d=0,e=1,f=1,g=0,h=0,i=a.width,j=a.height;while(i>0&&j>0&&e>0&&f>0){i=Math.floor(i/2),j=Math.floor(j/2),c.x===m?e=i:c.x===o?e=a.width-i:e+=Math.floor(i/2),c.y===l?f=j:c.y===n?f=a.height-j:f+=Math.floor(j/2),d=b.length;while(d--){if(b.length<2)break;g=b[d][0]-a.position.left,h=b[d][1]-a.position.top,(c.x===m&&g>=e||c.x===o&&g<=e||c.x===p&&(ga.width-e)||c.y===l&&h>=f||c.y===n&&h<=f||c.y===p&&(ha.height-f))&&b.splice(d,1)}}return{left:b[0][0],top:b[0][1]}}b.jquery||(b=d(b));var f=a.cache.areas={},g=(b[0].shape||b.attr("shape")).toLowerCase(),h=b[0].coords||b.attr("coords"),i=h.split(","),j=[],k=d('img[usemap="#'+b.parent("map").attr("name")+'"]'),q=k.offset(),r={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10}},s=0,t=0,u;q.left+=Math.ceil((k.outerWidth()-k.width())/2),q.top+=Math.ceil((k.outerHeight()-k.height())/2);if(g==="poly"){s=i.length;while(s--)t=[parseInt(i[--s],10),parseInt(i[s+1],10)],t[0]>r.position.right&&(r.position.right=t[0]),t[0]r.position.bottom&&(r.position.bottom=t[1]),t[1]', +closeClass:"simplemodal-close",escClose:!0,overlayClose:!1,fixed:!0,position:null,persist:!1,modal:!0,onOpen:null,onShow:null,onClose:null};b.modal.impl={d:{},init:function(a,d){if(this.d.data)return!1;n=b.browser.msie&&!b.support.boxModel;this.o=b.extend({},b.modal.defaults,d);this.zIndex=this.o.zIndex;this.occb=!1;if("object"===typeof a){if(a=a instanceof b?a:b(a),this.d.placeholder=!1,0").attr("id","simplemodal-placeholder").css({display:"none"})), +this.d.placeholder=!0,this.display=a.css("display"),!this.o.persist))this.d.orig=a.clone(!0)}else if("string"===typeof a||"number"===typeof a)a=b("
      ").html(a);else return alert("SimpleModal Error: Unsupported data type: "+typeof a),this;this.create(a);this.open();b.isFunction(this.o.onShow)&&this.o.onShow.apply(this,[this.d]);return this},create:function(a){this.getDimensions();if(this.o.modal&&m)this.d.iframe=b('').css(b.extend(this.o.iframeCss, +{display:"none",opacity:0,position:"fixed",height:h[0],width:h[1],zIndex:this.o.zIndex,top:0,left:0})).appendTo(this.o.appendTo);this.d.overlay=b("
      ").attr("id",this.o.overlayId).addClass("simplemodal-overlay").css(b.extend(this.o.overlayCss,{display:"none",opacity:this.o.opacity/100,height:this.o.modal?j[0]:0,width:this.o.modal?j[1]:0,position:"fixed",left:0,top:0,zIndex:this.o.zIndex+1})).appendTo(this.o.appendTo);this.d.container=b("
      ").attr("id",this.o.containerId).addClass("simplemodal-container").css(b.extend({position:this.o.fixed? +"fixed":"absolute"},this.o.containerCss,{display:"none",zIndex:this.o.zIndex+2})).append(this.o.close&&this.o.closeHTML?b(this.o.closeHTML).addClass(this.o.closeClass):"").appendTo(this.o.appendTo);this.d.wrap=b("
      ").attr("tabIndex",-1).addClass("simplemodal-wrap").css({height:"100%",outline:0,width:"100%"}).appendTo(this.d.container);this.d.data=a.attr("id",a.attr("id")||this.o.dataId).addClass("simplemodal-data").css(b.extend(this.o.dataCss,{display:"none"})).appendTo("body");this.setContainerDimensions(); +this.d.data.appendTo(this.d.wrap);(m||n)&&this.fixIE()},bindEvents:function(){var a=this;b("."+a.o.closeClass).bind("click.simplemodal",function(b){b.preventDefault();a.close()});a.o.modal&&a.o.close&&a.o.overlayClose&&a.d.overlay.bind("click.simplemodal",function(b){b.preventDefault();a.close()});l.bind("keydown.simplemodal",function(b){a.o.modal&&9===b.keyCode?a.watchTab(b):a.o.close&&a.o.escClose&&27===b.keyCode&&(b.preventDefault(),a.close())});k.bind("resize.simplemodal orientationchange.simplemodal", +function(){a.getDimensions();a.o.autoResize?a.setContainerDimensions():a.o.autoPosition&&a.setPosition();m||n?a.fixIE():a.o.modal&&(a.d.iframe&&a.d.iframe.css({height:h[0],width:h[1]}),a.d.overlay.css({height:j[0],width:j[1]}))})},unbindEvents:function(){b("."+this.o.closeClass).unbind("click.simplemodal");l.unbind("keydown.simplemodal");k.unbind(".simplemodal");this.d.overlay.unbind("click.simplemodal")},fixIE:function(){var a=this.o.position;b.each([this.d.iframe||null,!this.o.modal?null:this.d.overlay, +"fixed"===this.d.container.css("position")?this.d.container:null],function(b,f){if(f){var g=f[0].style;g.position="absolute";if(2>b)g.removeExpression("height"),g.removeExpression("width"),g.setExpression("height",'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"'),g.setExpression("width",'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"');else{var c,e;a&&a.constructor=== +Array?(c=a[0]?"number"===typeof a[0]?a[0].toString():a[0].replace(/px/,""):f.css("top").replace(/px/,""),c=-1===c.indexOf("%")?c+' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"':parseInt(c.replace(/%/,""))+' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"',a[1]&&(e="number"===typeof a[1]? +a[1].toString():a[1].replace(/px/,""),e=-1===e.indexOf("%")?e+' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"':parseInt(e.replace(/%/,""))+' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"')):(c='(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"', +e='(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"');g.removeExpression("top");g.removeExpression("left");g.setExpression("top",c);g.setExpression("left",e)}}})},focus:function(a){var d=this,a=a&&-1!==b.inArray(a,["first","last"])?a:"first",f=b(":input:enabled:visible:"+a,d.d.wrap);setTimeout(function(){0c?c:dc?c:this.o.minHeight&&"auto"!==i&&fe?e:ae?e:this.o.minWidth&&"auto"!==c&&gd||g>a?"auto":"visible"});this.o.autoPosition&&this.setPosition()},setPosition:function(){var a,b;a=h[0]/2-this.d.container.outerHeight(!0)/2;b=h[1]/2-this.d.container.outerWidth(!0)/2;var f="fixed"!==this.d.container.css("position")?k.scrollTop():0;this.o.position&&"[object Array]"===Object.prototype.toString.call(this.o.position)?(a=f+(this.o.position[0]||a),b=this.o.position[1]|| +b):a=f+a;this.d.container.css({left:b,top:a})},watchTab:function(a){if(0 0 ? JSON.stringify(rawInputLst) : '', + options_json: JSON.stringify(backendOptionsObj)}, + function(dataFromBackend) { + var trace = dataFromBackend.trace; + + // don't enter visualize mode if there are killer errors: + if (!trace || + (trace.length == 0) || + (trace[trace.length - 1].event == 'uncaught_exception')) { + + handleUncaughtExceptionFunc(trace); + + if (trace.length == 1) { + alert(trace[0].exception_msg); + } + else if (trace[trace.length - 1].exception_msg) { + alert(trace[trace.length - 1].exception_msg); + } + else { + alert("Unknown error. Reload to try again," + + "or report a bug to philip@pgbovine.net\n\n" + + "(Click the 'Generate URL' button to include a " + + "unique URL in your email bug report.)"); + } + } + else { + // fail-soft to prevent running off of the end of trace + if (frontendOptionsObj.startingInstruction >= trace.length) { + frontendOptionsObj.startingInstruction = 0; + } + + if (frontendOptionsObj.holisticMode) { + myVisualizer = new HolisticVisualizer(outputDiv, dataFromBackend, frontendOptionsObj); + } else { + myVisualizer = new ExecutionVisualizer(outputDiv, dataFromBackend, frontendOptionsObj); + + // set keyboard bindings + // VERY IMPORTANT to clear and reset this every time or + // else the handlers might be bound multiple times + $(document).unbind('keydown'); + $(document).keydown(function(k) { + if (k.keyCode == 37) { // left arrow + if (myVisualizer.stepBack()) { + k.preventDefault(); // don't horizontally scroll the display + } + } + else if (k.keyCode == 39) { // right arrow + if (myVisualizer.stepForward()) { + k.preventDefault(); // don't horizontally scroll the display + } + } + }); + } + + handleSuccessFunc(); + } + }, + "json"); +} diff --git a/v3/js/opt-frontend.js b/v3/js/opt-frontend.js new file mode 100644 index 000000000..d85b13758 --- /dev/null +++ b/v3/js/opt-frontend.js @@ -0,0 +1,608 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// Pre-reqs: +// - pytutor.js +// - jquery.ba-bbq.min.js +// - opt-frontend-common.js +// should all be imported BEFORE this file + + +var appMode = 'edit'; // 'edit', 'display', or 'display_no_frills' + // also support 'visualize' for backward + // compatibility (it's the same as 'display') + +var preseededCurInstr = null; // if you passed in a 'curInstr=' in the URL, then set this var + +var myVisualizer = null; // singleton ExecutionVisualizer instance + + +function enterEditMode() { + $.bbq.pushState({ mode: 'edit' }, 2 /* completely override other hash strings to keep URL clean */); +} + +function enterDisplayNoFrillsMode() { + $.bbq.pushState({ mode: 'display_no_frills' }, 2 /* completely override other hash strings to keep URL clean */); +} + +var pyInputCodeMirror; // CodeMirror object that contains the input text + +function setCodeMirrorVal(dat) { + pyInputCodeMirror.setValue(dat.rtrim() /* kill trailing spaces */); + $('#urlOutput,#embedCodeOutput').val(''); + + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); +} + + +$(document).ready(function() { + + $("#embedLinkDiv").hide(); + + pyInputCodeMirror = CodeMirror(document.getElementById('codeInputPane'), { + mode: 'python', + lineNumbers: true, + tabSize: 4, + indentUnit: 4, + // convert tab into four spaces: + extraKeys: {Tab: function(cm) {cm.replaceSelection(" ", "end");}} + }); + + pyInputCodeMirror.setSize(null, '420px'); + + + + // be friendly to the browser's forward and back buttons + // thanks to http://benalman.com/projects/jquery-bbq-plugin/ + $(window).bind("hashchange", function(e) { + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + + if (appMode === undefined || appMode == 'edit') { + $("#pyInputPane").show(); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + // destroy all annotation bubbles (NB: kludgy) + if (myVisualizer) { + myVisualizer.destroyAllAnnotationBubbles(); + } + } + else if (appMode == 'display' || appMode == 'visualize' /* 'visualize' is deprecated */) { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + + $("#embedLinkDiv").show(); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + + + // do this AFTER making #pyOutputPane visible, or else + // jsPlumb connectors won't render properly + myVisualizer.updateOutput(); + + // customize edit button click functionality AFTER rendering (NB: awkward!) + $('#pyOutputPane #editCodeLinkDiv').show(); + $('#pyOutputPane #editBtn').click(function() { + enterEditMode(); + }); + } + else if (appMode == 'display_no_frills') { + $("#pyInputPane").hide(); + $("#pyOutputPane").show(); + $("#embedLinkDiv").show(); + } + else { + assert(false); + } + + $('#urlOutput,#embedCodeOutput').val(''); // clear to avoid stale values + }); + + + function executeCode(forceStartingInstr) { + var backend_script = null; + if ($('#pythonVersionSelector').val() == '2') { + backend_script = python2_backend_script; + } + else if ($('#pythonVersionSelector').val() == '3') { + backend_script = python3_backend_script; + } + // experimental KRAZY MODE!!! + else if ($('#pythonVersionSelector').val() == '2crazy') { + backend_script = python2crazy_backend_script; + } + + $('#executeBtn').html("Please wait ... processing your code"); + $('#executeBtn').attr('disabled', true); + $("#pyOutputPane").hide(); + $("#embedLinkDiv").hide(); + + var backendOptionsObj = {cumulative_mode: ($('#cumulativeModeSelector').val() == 'true'), + heap_primitives: ($('#heapPrimitivesSelector').val() == 'true'), + show_only_outputs: ($('#showOnlyOutputsSelector').val() == 'true'), + py_crazy_mode: ($('#pythonVersionSelector').val() == '2crazy'), + origin: 'opt-frontend.js'}; + + + var startingInstruction = 0; + + // only do this at most ONCE, and then clear out preseededCurInstr + // NOP anyways if preseededCurInstr is 0 + if (preseededCurInstr) { + startingInstruction = preseededCurInstr; + preseededCurInstr = null; + } + + // forceStartingInstr overrides everything else + if (forceStartingInstr !== undefined) { + startingInstruction = forceStartingInstr; + } + + var frontendOptionsObj = {startingInstruction: startingInstruction, + // tricky: selector 'true' and 'false' values are strings! + disableHeapNesting: ($('#heapPrimitivesSelector').val() == 'true'), + drawParentPointers: ($('#drawParentPointerSelector').val() == 'true'), + textualMemoryLabels: ($('#textualMemoryLabelsSelector').val() == 'true'), + showOnlyOutputs: ($('#showOnlyOutputsSelector').val() == 'true'), + executeCodeWithRawInputFunc: executeCodeWithRawInput, + updateOutputCallback: function() {$('#urlOutput,#embedCodeOutput').val('');}, + + // undocumented experimental modes: + pyCrazyMode: ($('#pythonVersionSelector').val() == '2crazy'), + holisticMode: ($('#cumulativeModeSelector').val() == 'holistic') + //allowEditAnnotations: true, + } + + function handleSuccessFunc() { + // also scroll to top to make the UI more usable on smaller monitors + $(document).scrollTop(0); + + $.bbq.pushState({ mode: 'display' }, 2 /* completely override other hash strings to keep URL clean */); + } + + function handleUncaughtExceptionFunc(trace) { + if (trace.length == 1 && trace[0].line) { + var errorLineNo = trace[0].line - 1; /* CodeMirror lines are zero-indexed */ + if (errorLineNo !== undefined && errorLineNo != NaN) { + // highlight the faulting line in pyInputCodeMirror + pyInputCodeMirror.focus(); + pyInputCodeMirror.setCursor(errorLineNo, 0); + pyInputCodeMirror.setLineClass(errorLineNo, null, 'errorLine'); + + pyInputCodeMirror.setOption('onChange', function() { + pyInputCodeMirror.setLineClass(errorLineNo, null, null); // reset line back to normal + pyInputCodeMirror.setOption('onChange', null); // cancel + }); + } + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + } + } + + executePythonCode(pyInputCodeMirror.getValue(), + backend_script, backendOptionsObj, + frontendOptionsObj, + 'pyOutputPane', + handleSuccessFunc, handleUncaughtExceptionFunc); + } + + function executeCodeFromScratch() { + // don't execute empty string: + if ($.trim(pyInputCodeMirror.getValue()) == '') { + alert('Type in some code to visualize.'); + return; + } + + // reset these globals + rawInputLst = []; + executeCode(); + } + + function executeCodeWithRawInput(rawInputStr, curInstr) { + enterDisplayNoFrillsMode(); + + // set some globals + rawInputLst.push(rawInputStr); + executeCode(curInstr); + } + + $("#executeBtn").attr('disabled', false); + $("#executeBtn").click(executeCodeFromScratch); + + $("#clearBtn").click(function() { + pyInputCodeMirror.setValue(''); + }); + + + // canned examples + + $("#tutorialExampleLink").click(function() { + $.get("example-code/py_tutorial.txt", setCodeMirrorVal); + return false; + }); + + $("#strtokExampleLink").click(function() { + $.get("example-code/strtok.txt", setCodeMirrorVal); + return false; + }); + + $("#listCompLink").click(function() { + $.get("example-code/list-comp.txt", setCodeMirrorVal); + return false; + }); + + $("#fibonacciExampleLink").click(function() { + $.get("example-code/fib.txt", setCodeMirrorVal); + return false; + }); + + $("#memoFibExampleLink").click(function() { + $.get("example-code/memo_fib.txt", setCodeMirrorVal); + return false; + }); + + $("#factExampleLink").click(function() { + $.get("example-code/fact.txt", setCodeMirrorVal); + return false; + }); + + $("#filterExampleLink").click(function() { + $.get("example-code/filter.txt", setCodeMirrorVal); + return false; + }); + + $("#insSortExampleLink").click(function() { + $.get("example-code/ins_sort.txt", setCodeMirrorVal); + return false; + }); + + $("#aliasExampleLink").click(function() { + $.get("example-code/aliasing.txt", setCodeMirrorVal); + return false; + }); + + $("#happyExampleLink").click(function() { + $.get("example-code/happy.txt", setCodeMirrorVal); + return false; + }); + + $("#newtonExampleLink").click(function() { + $.get("example-code/sqrt.txt", setCodeMirrorVal); + return false; + }); + + $("#oopSmallExampleLink").click(function() { + $.get("example-code/oop_small.txt", setCodeMirrorVal); + return false; + }); + + $("#mapExampleLink").click(function() { + $.get("example-code/map.txt", setCodeMirrorVal); + return false; + }); + + $("#rawInputExampleLink").click(function() { + $.get("example-code/raw_input.txt", setCodeMirrorVal); + return false; + }); + + $("#oop1ExampleLink").click(function() { + $.get("example-code/oop_1.txt", setCodeMirrorVal); + return false; + }); + + $("#oop2ExampleLink").click(function() { + $.get("example-code/oop_2.txt", setCodeMirrorVal); + return false; + }); + + $("#inheritanceExampleLink").click(function() { + $.get("example-code/oop_inherit.txt", setCodeMirrorVal); + return false; + }); + + $("#sumExampleLink").click(function() { + $.get("example-code/sum.txt", setCodeMirrorVal); + return false; + }); + + $("#pwGcdLink").click(function() { + $.get("example-code/wentworth_gcd.txt", setCodeMirrorVal); + return false; + }); + + $("#pwSumListLink").click(function() { + $.get("example-code/wentworth_sumList.txt", setCodeMirrorVal); + return false; + }); + + $("#towersOfHanoiLink").click(function() { + $.get("example-code/towers_of_hanoi.txt", setCodeMirrorVal); + return false; + }); + + $("#pwTryFinallyLink").click(function() { + $.get("example-code/wentworth_try_finally.txt", setCodeMirrorVal); + return false; + }); + + $("#sumCubesLink").click(function() { + $.get("example-code/sum-cubes.txt", setCodeMirrorVal); + return false; + }); + + $("#decoratorsLink").click(function() { + $.get("example-code/decorators.txt", setCodeMirrorVal); + return false; + }); + + $("#genPrimesLink").click(function() { + $.get("example-code/gen_primes.txt", setCodeMirrorVal); + return false; + }); + + $("#genExprLink").click(function() { + $.get("example-code/genexpr.txt", setCodeMirrorVal); + return false; + }); + + + $('#closure1Link').click(function() { + $.get("example-code/closures/closure1.txt", setCodeMirrorVal); + return false; + }); + $('#closure2Link').click(function() { + $.get("example-code/closures/closure2.txt", setCodeMirrorVal); + return false; + }); + $('#closure3Link').click(function() { + $.get("example-code/closures/closure3.txt", setCodeMirrorVal); + return false; + }); + $('#closure4Link').click(function() { + $.get("example-code/closures/closure4.txt", setCodeMirrorVal); + return false; + }); + $('#closure5Link').click(function() { + $.get("example-code/closures/closure5.txt", setCodeMirrorVal); + return false; + }); + $('#lambdaParamLink').click(function() { + $.get("example-code/closures/lambda-param.txt", setCodeMirrorVal); + return false; + }); + $('#tortureLink').click(function() { + $.get("example-code/closures/student-torture.txt", setCodeMirrorVal); + return false; + }); + + + + $('#aliasing1Link').click(function() { + $.get("example-code/aliasing/aliasing1.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing2Link').click(function() { + $.get("example-code/aliasing/aliasing2.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing3Link').click(function() { + $.get("example-code/aliasing/aliasing3.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing4Link').click(function() { + $.get("example-code/aliasing/aliasing4.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing5Link').click(function() { + $.get("example-code/aliasing/aliasing5.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing6Link').click(function() { + $.get("example-code/aliasing/aliasing6.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing7Link').click(function() { + $.get("example-code/aliasing/aliasing7.txt", setCodeMirrorVal); + return false; + }); + $('#aliasing8Link').click(function() { + $.get("example-code/aliasing/aliasing8.txt", setCodeMirrorVal); + return false; + }); + + + $('#ll1Link').click(function() { + $.get("example-code/linked-lists/ll1.txt", setCodeMirrorVal); + return false; + }); + $('#ll2Link').click(function() { + $.get("example-code/linked-lists/ll2.txt", setCodeMirrorVal); + return false; + }); + $('#sumListLink').click(function() { + $.get("example-code/sum-list.txt", setCodeMirrorVal); + return false; + }); + + $('#varargsLink').click(function() { + $.get("example-code/varargs.txt", setCodeMirrorVal); + return false; + }); + + $('#forElseLink').click(function() { + $.get("example-code/for-else.txt", setCodeMirrorVal); + return false; + }); + + $('#nonlocalLink').click(function() { + $.get("example-code/nonlocal.txt", setCodeMirrorVal); + return false; + }); + + $('#metaclassLink').click(function() { + $.get("example-code/metaclass.txt", setCodeMirrorVal); + return false; + }); + + $('#cmFibLink').click(function() { + $.get("example-code/chris-meyers/optFib.txt", setCodeMirrorVal); + $("#showOnlyOutputsSelector").val('true'); + return false; + }); + + $('#cmMinPathLink').click(function() { + $.get("example-code/chris-meyers/optMinpath.txt", setCodeMirrorVal); + $("#showOnlyOutputsSelector").val('true'); + return false; + }); + + $('#cmKnapsackLink').click(function() { + $.get("example-code/chris-meyers/optKnapsack.txt", setCodeMirrorVal); + $("#showOnlyOutputsSelector").val('true'); + return false; + }); + + $('#cmSieveLink').click(function() { + $.get("example-code/chris-meyers/optSieve.txt", setCodeMirrorVal); + $("#showOnlyOutputsSelector").val('true'); + return false; + }); + + + var queryStrOptions = getQueryStringOptions(); + + if (queryStrOptions.preseededCode) { + setCodeMirrorVal(queryStrOptions.preseededCode); + } + else { + // select a canned example on start-up: + $("#aliasExampleLink").trigger('click'); + } + + // ugh, ugly tristate due to the possibility of each being undefined + if (queryStrOptions.pyState !== undefined) { + $('#pythonVersionSelector').val(queryStrOptions.pyState); + } + if (queryStrOptions.cumulativeState !== undefined) { + $('#cumulativeModeSelector').val(queryStrOptions.cumulativeState); + } + if (queryStrOptions.heapPrimitives !== undefined) { + $('#heapPrimitivesSelector').val(queryStrOptions.heapPrimitives); + } + if (queryStrOptions.drawParentPointers !== undefined) { + $('#drawParentPointerSelector').val(queryStrOptions.drawParentPointers); + } + if (queryStrOptions.textRefs !== undefined) { + $('#textualMemoryLabelsSelector').val(queryStrOptions.textRefs); + } + if (queryStrOptions.showOnlyOutputs !== undefined) { + $('#showOnlyOutputsSelector').val(queryStrOptions.showOnlyOutputs); + } + + + appMode = $.bbq.getState('mode'); // assign this to the GLOBAL appMode + if ((appMode == 'display' || appMode == 'visualize' /* 'visualize' is deprecated */) && + queryStrOptions.preseededCode /* jump to display only with pre-seeded code */) { + preseededCurInstr = queryStrOptions.preseededCurInstr; // ugly global + $("#executeBtn").trigger('click'); + } + else { + if (appMode === undefined) { + // default mode is 'edit', don't trigger a "hashchange" event + appMode = 'edit'; + } + else { + // fail-soft by killing all passed-in hashes and triggering a "hashchange" + // event, which will then go to 'edit' mode + $.bbq.removeState(); + } + } + + + // log a generic AJAX error handler + $(document).ajaxError(function() { + alert("Server error (possibly due to memory/resource overload). " + + "Report a bug to philip@pgbovine.net\n\n" + + "(Click the 'Generate URL' button to include a unique URL in your email bug report.)"); + + $('#executeBtn').html("Visualize Execution"); + $('#executeBtn').attr('disabled', false); + }); + + + // redraw connector arrows on window resize + $(window).resize(function() { + if (appMode == 'display' || appMode == 'visualize' /* 'visualize' is deprecated */) { + myVisualizer.redrawConnectors(); + } + }); + + $('#genUrlBtn').bind('click', function() { + var myArgs = {code: pyInputCodeMirror.getValue(), + mode: appMode, + cumulative: $('#cumulativeModeSelector').val(), + heapPrimitives: $('#heapPrimitivesSelector').val(), + drawParentPointers: $('#drawParentPointerSelector').val(), + textReferences: $('#textualMemoryLabelsSelector').val(), + showOnlyOutputs: $('#showOnlyOutputsSelector').val(), + py: $('#pythonVersionSelector').val()}; + + if (appMode == 'display' || appMode == 'visualize' /* 'visualize' is deprecated */) { + myArgs.curInstr = myVisualizer.curInstr; + } + + var urlStr = $.param.fragment(window.location.href, myArgs, 2 /* clobber all */); + $('#urlOutput').val(urlStr); + }); + + + $('#genEmbedBtn').bind('click', function() { + assert(appMode == 'display' || appMode == 'visualize' /* 'visualize' is deprecated */); + var myArgs = {code: pyInputCodeMirror.getValue(), + cumulative: $('#cumulativeModeSelector').val(), + heapPrimitives: $('#heapPrimitivesSelector').val(), + drawParentPointers: $('#drawParentPointerSelector').val(), + textReferences: $('#textualMemoryLabelsSelector').val(), + showOnlyOutputs: $('#showOnlyOutputsSelector').val(), + py: $('#pythonVersionSelector').val(), + curInstr: myVisualizer.curInstr, + codeDivWidth: myVisualizer.DEFAULT_EMBEDDED_CODE_DIV_WIDTH, + codeDivHeight: myVisualizer.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT, + }; + + var embedUrlStr = $.param.fragment(domain + "iframe-embed.html", myArgs, 2 /* clobber all */); + var iframeStr = ''; + $('#embedCodeOutput').val(iframeStr); + }); +}); + diff --git a/v3/js/opt-ipy.js b/v3/js/opt-ipy.js new file mode 100644 index 000000000..76159d847 --- /dev/null +++ b/v3/js/opt-ipy.js @@ -0,0 +1,134 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// Front-end for OPT + IPython shell integration + + +// Pre-reqs: pytutor.js and jquery.ba-bbq.min.js should be imported BEFORE this file + + +var myVisualizer = null; // singleton ExecutionVisualizer instance + + +$(document).ready(function() { + // redraw connector arrows on window resize + $(window).resize(function() { + myVisualizer.redrawConnectors(); + }); + + updater.start(); +}); + + +// Adapted from https://github.com/facebook/tornado/tree/master/demos/websocket + +// Copyright 2009 FriendFeed +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +var updater = { + socket: null, + start: function() { + var url = "ws://" + location.host + "/chatsocket"; + updater.socket = new WebSocket(url); + updater.socket.onmessage = function(event) { + updater.showMessage(JSON.parse(event.data)); + } + }, + + showMessage: function(message) { + if (message.type == 'wholetrace') { + payload = message.payload + + var curInstr = 0; + var jumpToEnd = true; // yes by default + + // if the user isn't currently viewing the final element of + // the trace, then restore their original position, so that + // their display doesn't suddenly jump to the end + if (myVisualizer) { + curInstr = myVisualizer.curInstr; + jumpToEnd = (curInstr == myVisualizer.curTrace.length - 1); + } + + if (jumpToEnd) { + myVisualizer = new ExecutionVisualizer('vizDiv', + payload, + {embeddedMode: true, + jumpToEnd: true}); + } + else { + myVisualizer = new ExecutionVisualizer('vizDiv', + payload, + {embeddedMode: true, + startingInstruction: curInstr}); + } + + // set keyboard bindings + // VERY IMPORTANT to clear and reset this every time or + // else the handlers might be bound multiple times + $(document).unbind('keydown'); + $(document).keydown(function(k) { + if (k.keyCode == 37) { // left arrow + if (myVisualizer.stepBack()) { + k.preventDefault(); // don't horizontally scroll the display + } + } + else if (k.keyCode == 39) { // right arrow + if (myVisualizer.stepForward()) { + k.preventDefault(); // don't horizontally scroll the display + } + } + }); + } + else if (message.type == 'difftrace') { + // TODO: implement optimization based on, say, + // https://code.google.com/p/google-diff-match-patch/ + + // for starters, simply create a new ExecutionVisualizer + // object using the patched version of the payload + } + else if (message.type == 'clear') { + myVisualizer = null; + $('#vizDiv').empty(); + $(document).unbind('keydown'); + return; + } + } +}; diff --git a/v3/js/opt-lessons.js b/v3/js/opt-lessons.js new file mode 100644 index 000000000..1d279ffc6 --- /dev/null +++ b/v3/js/opt-lessons.js @@ -0,0 +1,118 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +// Pre-reqs: pytutor.js and jquery.ba-bbq.min.js should be imported BEFORE this file + +var backend_script = 'exec'; // URL of backend script, which must eventually call pg_logger.py + +var myVisualizer = null; // singleton ExecutionVisualizer instance + +var lessonScript = null; +var metadataJSON = null; + +function parseLessonFile(dat) { + var toks = dat.split('======'); + + // globals + lessonScript = toks[0].rtrim(); + metadataJSON = $.parseJSON(toks[1]); + + $('#lessonTitle').html(metadataJSON.title); + $('#lessonDescription').html(metadataJSON.description); + + document.title = metadataJSON.title + ' - Online Python Tutor (v3)'; + + $.get(backend_script, + {user_script : lessonScript}, + function(dataFromBackend) { + var trace = dataFromBackend.trace; + + // don't enter visualize mode if there are killer errors: + if (!trace || + (trace.length == 0) || + (trace[trace.length - 1].event == 'uncaught_exception')) { + + if (trace.length == 1) { + alert(trace[0].exception_msg); + } + else { + alert("Whoa, unknown error! Reload to try again, or report a bug to philip@pgbovine.net\n\n(Click the 'Generate URL' button to include a unique URL in your email bug report.)"); + } + } + else { + myVisualizer = new ExecutionVisualizer('pyOutputPane', + dataFromBackend, + {embeddedMode: true, + updateOutputCallback: updateLessonNarration}); + + myVisualizer.updateOutput(); + } + }, + "json"); +} + +function updateLessonNarration(myViz) { + var curInstr = myViz.curInstr; + + assert(metadataJSON); + + var annotation = metadataJSON[curInstr + 1]; // adjust for indexing diffs + if (annotation) { + $('#lessonNarration').html(annotation); + } + else { + $('#lessonNarration').html(''); + } + + // hack from John DeNero to ensure that once a div grows it height, it + // never shrinks again + $('#lessonNarration').css('min-height', $('#lessonNarration').css('height')); +} + +$(document).ready(function() { + + //$.get("lessons/aliasing.txt", parseLessonFile); + //$.get("lessons/dive-into-python-311.txt", parseLessonFile); + //$.get("lessons/for-else.txt", parseLessonFile); + $.get("lessons/varargs.txt", parseLessonFile); + + // log a generic AJAX error handler + $(document).ajaxError(function() { + alert("Server error (possibly due to memory/resource overload)."); + }); + + + // redraw connector arrows on window resize + $(window).resize(function() { + if (myVisualizer) { + myVisualizer.redrawConnectors(); + } + }); + +}); diff --git a/v3/js/pytutor.js b/v3/js/pytutor.js new file mode 100644 index 000000000..e4e656380 --- /dev/null +++ b/v3/js/pytutor.js @@ -0,0 +1,3524 @@ +/* + +Online Python Tutor +https://github.com/pgbovine/OnlinePythonTutor/ + +Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + + +/* To import, put this at the top of your HTML page: + + + + + + + + + + + + + + + + +*/ + + +/* Coding gotchas: + +- NEVER use naked $(__) or d3.select(__) statements to select DOM elements. + + ALWAYS use myViz.domRoot or myViz.domRootD3 for jQuery and D3, respectively. + + Otherwise things will break in weird ways when you have more than one visualization + embedded within a webpage, due to multiple matches in the global namespace. + + +- always use generateID to generate unique CSS IDs, or else things will break + when multiple ExecutionVisualizer instances are displayed on a webpage + +*/ + + +var SVG_ARROW_POLYGON = '0,3 12,3 12,0 18,5 12,10 12,7 0,7'; +var SVG_ARROW_HEIGHT = 10; // must match height of SVG_ARROW_POLYGON + +var curVisualizerID = 1; // global to uniquely identify each ExecutionVisualizer instance + +// domRootID is the string ID of the root element where to render this instance +// dat is data returned by the Python Tutor backend consisting of two fields: +// code - string of executed code +// trace - a full execution trace +// +// params is an object containing optional parameters, such as: +// jumpToEnd - if non-null, jump to the very end of execution +// startingInstruction - the (zero-indexed) execution point to display upon rendering +// hideOutput - hide "Program output" display +// codeDivHeight - maximum height of #pyCodeOutputDiv (in integer pixels) +// codeDivWidth - maximum width of #pyCodeOutputDiv (in integer pixels) +// editCodeBaseURL - the base URL to visit when the user clicks 'Edit code' (if null, then 'Edit code' link hidden) +// allowEditAnnotations - allow user to edit per-step annotations (default: false) +// embeddedMode - shortcut for hideOutput=true, allowEditAnnotations=false, +// codeDivWidth=this.DEFAULT_EMBEDDED_CODE_DIV_WIDTH, +// codeDivHeight=this.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT +// disableHeapNesting - if true, then render all heap objects at the top level (i.e., no nested objects) +// drawParentPointers - if true, then draw environment diagram parent pointers for all frames +// WARNING: there are hard-to-debug MEMORY LEAKS associated with activating this option +// textualMemoryLabels - render references using textual memory labels rather than as jsPlumb arrows. +// this is good for slow browsers or when used with disableHeapNesting +// to prevent "arrow overload" +// showOnlyOutputs - show only program outputs and NOT internal data structures +// updateOutputCallback - function to call (with 'this' as parameter) +// whenever this.updateOutput() is called +// (BEFORE rendering the output display) +// heightChangeCallback - function to call (with 'this' as parameter) +// whenever the HEIGHT of #dataViz changes +// verticalStack - if true, then stack code display ON TOP of visualization +// (else place side-by-side) +// executeCodeWithRawInputFunc - function to call when you want to re-execute the given program +// with some new user input (somewhat hacky!) +// highlightLines - highlight current and previously executed lines (default: false) +// arrowLines - draw arrows pointing to current and previously executed lines (default: true) +// compactFuncLabels - render functions with a 'func' prefix and no type label +// pyCrazyMode - run with Py2crazy, which provides expression-level +// granularity instead of line-level granularity (HIGHLY EXPERIMENTAL!) +function ExecutionVisualizer(domRootID, dat, params) { + this.curInputCode = dat.code.rtrim(); // kill trailing spaces + this.curTrace = dat.trace; + + this.DEFAULT_EMBEDDED_CODE_DIV_WIDTH = 350; + this.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT = 400; + + // optional filtering to remove redundancy ... + // ok, we're gonna filter out all trace entries of 'call' events, + // because each one contains IDENTICAL state information as the + // 'step_line' entry immediately following it. this filtering allows the + // visualization to not show as much redundancy. + // (on second thought, don't filter, since explicitly stepping into + // the function def line is clearer!) + //this.curTrace = this.curTrace.filter(function(e) {return e.event != 'call';}); + + // if the final entry is raw_input or mouse_input, then trim it from the trace and + // set a flag to prompt for user input when execution advances to the + // end of the trace + if (this.curTrace.length > 0) { + var lastEntry = this.curTrace[this.curTrace.length - 1]; + if (lastEntry.event == 'raw_input') { + this.promptForUserInput = true; + this.userInputPromptStr = lastEntry.prompt; + this.curTrace.pop() // kill last entry so that it doesn't get displayed + } + else if (lastEntry.event == 'mouse_input') { + this.promptForMouseInput = true; + this.userInputPromptStr = lastEntry.prompt; + this.curTrace.pop() // kill last entry so that it doesn't get displayed + } + } + + this.curInstr = 0; + + this.params = params; + if (!this.params) { + this.params = {}; // make it an empty object by default + } + + var arrowLinesDef = (this.params.arrowLines !== undefined); + var highlightLinesDef = (this.params.highlightLines !== undefined); + + if (!arrowLinesDef && !highlightLinesDef) { + // neither is set + this.params.highlightLines = false; + this.params.arrowLines = true; + } + else if (arrowLinesDef && highlightLinesDef) { + // both are set, so just use their set values + } + else if (arrowLinesDef) { + // only arrowLines set + this.params.highlightLines = !(this.params.arrowLines); + } + else { + // only highlightLines set + this.params.arrowLines = !(this.params.highlightLines); + } + + this.compactFuncLabels = this.params.compactFuncLabels; + + // audible! + if (this.params.pyCrazyMode) { + this.params.arrowLines = this.params.highlightLines = false; + } + + // needs to be unique! + this.visualizerID = curVisualizerID; + curVisualizerID++; + + + this.leftGutterSvgInitialized = false; + this.arrowOffsetY = undefined; + this.codeRowHeight = undefined; + + // avoid 'undefined' state + this.disableHeapNesting = (this.params.disableHeapNesting == true); + this.drawParentPointers = (this.params.drawParentPointers == true); + this.textualMemoryLabels = (this.params.textualMemoryLabels == true); + this.showOnlyOutputs = (this.params.showOnlyOutputs == true); + + this.executeCodeWithRawInputFunc = this.params.executeCodeWithRawInputFunc; + + // cool, we can create a separate jsPlumb instance for each visualization: + this.jsPlumbInstance = jsPlumb.getInstance({ + Endpoint: ["Dot", {radius:3}], + EndpointStyles: [{fillStyle: connectorBaseColor}, {fillstyle: null} /* make right endpoint invisible */], + Anchors: ["RightMiddle", "LeftMiddle"], + PaintStyle: {lineWidth:1, strokeStyle: connectorBaseColor}, + + // bezier curve style: + //Connector: [ "Bezier", { curviness:15 }], /* too much 'curviness' causes lines to run together */ + //Overlays: [[ "Arrow", { length: 14, width:10, foldback:0.55, location:0.35 }]], + + // state machine curve style: + Connector: [ "StateMachine" ], + Overlays: [[ "Arrow", { length: 10, width:7, foldback:0.55, location:1 }]], + EndpointHoverStyles: [{fillStyle: connectorHighlightColor}, {fillstyle: null} /* make right endpoint invisible */], + HoverPaintStyle: {lineWidth: 1, strokeStyle: connectorHighlightColor}, + }); + + + // true iff trace ended prematurely since maximum instruction limit has + // been reached + var instrLimitReached = false; + + + // the root elements for jQuery and D3 selections, respectively. + // ALWAYS use these and never use naked $(__) or d3.select(__) + this.domRoot = $('#' + domRootID); + this.domRoot.data("vis",this); // bnm store a reference to this as div data for use later. + this.domRootD3 = d3.select('#' + domRootID); + + // stick a new div.ExecutionVisualizer within domRoot and make that + // the new domRoot: + this.domRoot.html('
      '); + + this.domRoot = this.domRoot.find('div.ExecutionVisualizer'); + this.domRootD3 = this.domRootD3.select('div.ExecutionVisualizer'); + + + // initialize in renderPyCodeOutput() + this.codeOutputLines = null; + this.breakpoints = null; // set of execution points to set as breakpoints + this.sortedBreakpointsList = null; // sorted and synced with breakpointLines + this.hoverBreakpoints = null; // set of breakpoints because we're HOVERING over a given line + + this.enableTransitions = false; // EXPERIMENTAL - enable transition effects + + this.classAttrsHidden = {}; // kludgy hack for 'show/hide attributes' for class objects + + this.hasRendered = false; + + this.render(); // go for it! + +} + + +// create a unique ID, which is often necessary so that jsPlumb doesn't get confused +// due to multiple ExecutionVisualizer instances being displayed simultaneously +ExecutionVisualizer.prototype.generateID = function(original_id) { + // (it's safer to start names with a letter rather than a number) + return 'v' + this.visualizerID + '__' + original_id; +} + + +ExecutionVisualizer.prototype.render = function() { + if (this.hasRendered) { + alert('ERROR: You should only call render() ONCE on an ExecutionVisualizer object.'); + return; + } + + + var myViz = this; // to prevent confusion of 'this' inside of nested functions + + var codeDisplayHTML = + '
      \ +
      \ + \ +
      \ +
      \ + \ + \ + Step ? of ?\ + \ + \ +
      \ +
      \ +
      \ +
      \ + \ +
      \ +
      \ +
      \ +
      '; + + var outputsHTML = + '
      \ +
      \ + Program output:
      \ + \ +
      '; + + var codeVizHTML = + '
      \ +
      \ + \ + \ + \ + \ +
      \ +
      \ +
      Frames
      \ +
      \ +
      \ +
      \ +
      \ +
      Objects
      \ +
      \ +
      \ +
      '; + + var vizHeaderHTML = + '
      \ + \ +
      \ + \ +
      \ +
      '; + + if (this.params.verticalStack) { + this.domRoot.html(vizHeaderHTML + '
      ' + + codeDisplayHTML + '
      ' + + codeVizHTML + '
      '); + } + else { + this.domRoot.html(vizHeaderHTML + '
      ' + + codeDisplayHTML + '' + + codeVizHTML + '
      '); + } + + if (this.showOnlyOutputs) { + myViz.domRoot.find('#dataViz').hide(); + this.domRoot.find('#vizLayoutTdSecond').append(outputsHTML); + + if (this.params.verticalStack) { + this.domRoot.find('#vizLayoutTdSecond').css('padding-top', '25px'); + } + else { + this.domRoot.find('#vizLayoutTdSecond').css('padding-left', '25px'); + } + } + else { + this.domRoot.find('#vizLayoutTdFirst').append(outputsHTML); + } + + if (this.params.arrowLines) { + this.domRoot.find('#legendDiv') + .append(' line that has just executed') + .append('

      next line to execute

      '); + + myViz.domRootD3.select('svg#prevLegendArrowSVG') + .append('polygon') + .attr('points', SVG_ARROW_POLYGON) + .attr('fill', lightArrowColor); + + myViz.domRootD3.select('svg#curLegendArrowSVG') + .append('polygon') + .attr('points', SVG_ARROW_POLYGON) + .attr('fill', darkArrowColor); + } + else if (this.params.highlightLines) { + myViz.domRoot.find('#legendDiv') + .append('line that has just executed ') + .append('next line to execute') + } + else if (this.params.pyCrazyMode) { + myViz.domRoot.find('#legendDiv') + .append('Py2crazy mode!') + .append(' Stepping through (roughly) each executed expression. Color codes:

      ') + .append('expression that just executed
      ') + .append('next expression to execute'); + } + + + if (this.params.editCodeBaseURL) { + var urlStr = $.param.fragment(this.params.editCodeBaseURL, + {code: this.curInputCode}, + 2); + this.domRoot.find('#editBtn').attr('href', urlStr); + } + else { + this.domRoot.find('#editCodeLinkDiv').hide(); // just hide for simplicity! + this.domRoot.find('#editBtn').attr('href', "#"); + this.domRoot.find('#editBtn').click(function(){return false;}); // DISABLE the link! + } + + if (this.params.allowEditAnnotations !== undefined) { + this.allowEditAnnotations = this.params.allowEditAnnotations; + } + else { + this.allowEditAnnotations = false; + } + + if (this.params.pyCrazyMode !== undefined) { + this.pyCrazyMode = this.params.pyCrazyMode; + } + else { + this.pyCrazyMode = false; + } + + this.domRoot.find('#stepAnnotationEditor').hide(); + + if (this.params.embeddedMode) { + this.params.hideOutput = true; // put this before hideOutput handler + + // don't override if they've already been set! + if (this.params.codeDivWidth === undefined) { + this.params.codeDivWidth = this.DEFAULT_EMBEDDED_CODE_DIV_WIDTH; + } + + if (this.params.codeDivHeight === undefined) { + this.params.codeDivHeight = this.DEFAULT_EMBEDDED_CODE_DIV_HEIGHT; + } + + this.allowEditAnnotations = false; + + // add an extra label to link back to the main site, so that viewers + // on the embedded page know that they're seeing an OPT visualization + this.domRoot.find('#codeDisplayDiv').append('

      Code visualized with Online Python Tutor
      '); + } + + myViz.editAnnotationMode = false; + + if (this.allowEditAnnotations) { + var ab = this.domRoot.find('#annotateBtn'); + + ab.click(function() { + if (myViz.editAnnotationMode) { + myViz.enterViewAnnotationsMode(); + + myViz.domRoot.find("#jmpFirstInstr,#jmpLastInstr,#jmpStepBack,#jmpStepFwd,#executionSlider,#editCodeLinkDiv,#stepAnnotationViewer").show(); + myViz.domRoot.find('#stepAnnotationEditor').hide(); + ab.html('Annotate this step'); + } + else { + myViz.enterEditAnnotationsMode(); + + myViz.domRoot.find("#jmpFirstInstr,#jmpLastInstr,#jmpStepBack,#jmpStepFwd,#executionSlider,#editCodeLinkDiv,#stepAnnotationViewer").hide(); + myViz.domRoot.find('#stepAnnotationEditor').show(); + ab.html('Done annotating'); + } + }); + } + else { + this.domRoot.find('#annotateBtn').hide(); + } + + + // not enough room for these extra buttons ... + if (this.params.codeDivWidth && + this.params.codeDivWidth < 470) { + this.domRoot.find('#jmpFirstInstr').hide(); + this.domRoot.find('#jmpLastInstr').hide(); + } + + + if (this.params.codeDivWidth) { + // set width once + this.domRoot.find('#codeDisplayDiv').width( + this.params.codeDivWidth); + // it will propagate to the slider + } + + // enable left-right draggable pane resizer (originally from David Pritchard) + var syncStdoutWidth = function(event, ui){ + $("#vizLayoutTdFirst #pyStdout").width(ui.size.width-2*parseInt($("#pyStdout").css("padding-left")));}; + $('#codeDisplayDiv').resizable({handles:"e", resize: syncStdoutWidth}); + syncStdoutWidth(null, {size: {width: $('#codeDisplayDiv').width()}}); + + + if (this.params.codeDivHeight) { + this.domRoot.find('#pyCodeOutputDiv') + .css('max-height', this.params.codeDivHeight + 'px'); + } + + + // create a persistent globals frame + // (note that we need to keep #globals_area separate from #stack for d3 to work its magic) + this.domRoot.find("#globals_area").append('
      Global frame
      '); + + + if (this.params.hideOutput) { + this.domRoot.find('#progOutputs').hide(); + } + + this.domRoot.find("#jmpFirstInstr").click(function() { + myViz.curInstr = 0; + myViz.updateOutput(); + }); + + this.domRoot.find("#jmpLastInstr").click(function() { + myViz.curInstr = myViz.curTrace.length - 1; + myViz.updateOutput(); + }); + + this.domRoot.find("#jmpStepBack").click(function() { + myViz.stepBack(); + }); + + this.domRoot.find("#jmpStepFwd").click(function() { + myViz.stepForward(); + }); + + // disable controls initially ... + this.domRoot.find("#vcrControls #jmpFirstInstr").attr("disabled", true); + this.domRoot.find("#vcrControls #jmpStepBack").attr("disabled", true); + this.domRoot.find("#vcrControls #jmpStepFwd").attr("disabled", true); + this.domRoot.find("#vcrControls #jmpLastInstr").attr("disabled", true); + + + + // must postprocess curTrace prior to running precomputeCurTraceLayouts() ... + var lastEntry = this.curTrace[this.curTrace.length - 1]; + + this.instrLimitReached = (lastEntry.event == 'instruction_limit_reached'); + + if (this.instrLimitReached) { + this.curTrace.pop() // kill last entry + var warningMsg = lastEntry.exception_msg; + myViz.domRoot.find("#errorOutput").html(htmlspecialchars(warningMsg)); + myViz.domRoot.find("#errorOutput").show(); + } + + // set up slider after postprocessing curTrace + + var sliderDiv = this.domRoot.find('#executionSlider'); + sliderDiv.slider({min: 0, max: this.curTrace.length - 1, step: 1}); + //disable keyboard actions on the slider itself (to prevent double-firing of events) + sliderDiv.find(".ui-slider-handle").unbind('keydown'); + // make skinnier and taller + sliderDiv.find(".ui-slider-handle").css('width', '0.8em'); + sliderDiv.find(".ui-slider-handle").css('height', '1.4em'); + this.domRoot.find(".ui-widget-content").css('font-size', '0.9em'); + + this.domRoot.find('#executionSlider').bind('slide', function(evt, ui) { + // this is SUPER subtle. if this value was changed programmatically, + // then evt.originalEvent will be undefined. however, if this value + // was changed by a user-initiated event, then this code should be + // executed ... + if (evt.originalEvent) { + myViz.curInstr = ui.value; + myViz.updateOutput(); + } + }); + + + if (this.params.startingInstruction) { + assert(0 <= this.params.startingInstruction && + this.params.startingInstruction < this.curTrace.length); + this.curInstr = this.params.startingInstruction; + } + + if (this.params.jumpToEnd) { + this.curInstr = this.curTrace.length - 1; + } + + + this.precomputeCurTraceLayouts(); + + this.renderPyCodeOutput(); + + this.updateOutput(); + + this.hasRendered = true; +} + + +ExecutionVisualizer.prototype.showVizHeaderViewMode = function() { + var titleVal = this.domRoot.find('#vizTitleEditor').val().trim(); + var descVal = this.domRoot.find('#vizDescriptionEditor').val().trim(); + + this.domRoot.find('#vizTitleEditor,#vizDescriptionEditor').hide(); + + if (!titleVal && !descVal) { + this.domRoot.find('#vizHeader').hide(); + } + else { + this.domRoot.find('#vizHeader,#vizTitleViewer,#vizDescriptionViewer').show(); + if (titleVal) { + this.domRoot.find('#vizTitleViewer').html(htmlsanitize(titleVal)); // help prevent HTML/JS injection attacks + } + + if (descVal) { + this.domRoot.find('#vizDescriptionViewer').html(htmlsanitize(descVal)); // help prevent HTML/JS injection attacks + } + } +} + +ExecutionVisualizer.prototype.showVizHeaderEditMode = function() { + this.domRoot.find('#vizHeader').show(); + + this.domRoot.find('#vizTitleViewer,#vizDescriptionViewer').hide(); + this.domRoot.find('#vizTitleEditor,#vizDescriptionEditor').show(); +} + + +ExecutionVisualizer.prototype.destroyAllAnnotationBubbles = function() { + var myViz = this; + + // hopefully destroys all old bubbles and reclaims their memory + if (myViz.allAnnotationBubbles) { + $.each(myViz.allAnnotationBubbles, function(i, e) { + e.destroyQTip(); + }); + } + + // remove this handler as well! + this.domRoot.find('#pyCodeOutputDiv').unbind('scroll'); + + myViz.allAnnotationBubbles = null; +} + +ExecutionVisualizer.prototype.initStepAnnotation = function() { + var curEntry = this.curTrace[this.curInstr]; + if (curEntry.stepAnnotation) { + this.domRoot.find("#stepAnnotationViewer").html(htmlsanitize(curEntry.stepAnnotation)); // help prevent HTML/JS injection attacks + this.domRoot.find("#stepAnnotationEditor").val(curEntry.stepAnnotation); + } + else { + this.domRoot.find("#stepAnnotationViewer").html(''); + this.domRoot.find("#stepAnnotationEditor").val(''); + } +} + +ExecutionVisualizer.prototype.initAllAnnotationBubbles = function() { + var myViz = this; + + // TODO: check for memory leaks + //console.log('initAllAnnotationBubbles'); + + myViz.destroyAllAnnotationBubbles(); + + var codelineIDs = []; + $.each(this.domRoot.find('#pyCodeOutput .cod'), function(i, e) { + codelineIDs.push($(e).attr('id')); + }); + + var heapObjectIDs = []; + $.each(this.domRoot.find('.heapObject'), function(i, e) { + heapObjectIDs.push($(e).attr('id')); + }); + + var variableIDs = []; + $.each(this.domRoot.find('.variableTr'), function(i, e) { + variableIDs.push($(e).attr('id')); + }); + + var frameIDs = []; + $.each(this.domRoot.find('.stackFrame'), function(i, e) { + frameIDs.push($(e).attr('id')); + }); + + myViz.allAnnotationBubbles = []; + + $.each(codelineIDs, function(i,e) {myViz.allAnnotationBubbles.push(new AnnotationBubble(myViz, 'codeline', e));}); + $.each(heapObjectIDs, function(i,e) {myViz.allAnnotationBubbles.push(new AnnotationBubble(myViz, 'object', e));}); + $.each(variableIDs, function(i,e) {myViz.allAnnotationBubbles.push(new AnnotationBubble(myViz, 'variable', e));}); + $.each(frameIDs, function(i,e) {myViz.allAnnotationBubbles.push(new AnnotationBubble(myViz, 'frame', e));}); + + + this.domRoot.find('#pyCodeOutputDiv').scroll(function() { + $.each(myViz.allAnnotationBubbles, function(i, e) { + if (e.type == 'codeline') { + e.redrawCodelineBubble(); + } + }); + }); + + //console.log('initAllAnnotationBubbles', myViz.allAnnotationBubbles.length); +} + + +ExecutionVisualizer.prototype.enterViewAnnotationsMode = function() { + this.editAnnotationMode = false; + var curEntry = this.curTrace[this.curInstr]; + + // TODO: check for memory leaks!!! + var myViz = this; + + if (!myViz.allAnnotationBubbles) { + if (curEntry.bubbleAnnotations) { + // If there is an existing annotations object, then initiate all annotations bubbles + // and display them in 'View' mode + myViz.initAllAnnotationBubbles(); + + $.each(myViz.allAnnotationBubbles, function(i, e) { + var txt = curEntry.bubbleAnnotations[e.domID]; + if (txt) { + e.preseedText(txt); + } + }); + } + } + + + if (myViz.allAnnotationBubbles) { + var curAnnotations = {}; + + $.each(myViz.allAnnotationBubbles, function(i, e) { + e.enterViewMode(); + + if (e.text) { + curAnnotations[e.domID] = e.text; + } + }); + + // Save annotations directly into the current trace entry as an 'annotations' object + // directly mapping domID -> text. + // + // NB: This scheme can break if the functions for generating domIDs are altered. + curEntry.bubbleAnnotations = curAnnotations; + } + + var stepAnnotationEditorVal = myViz.domRoot.find("#stepAnnotationEditor").val().trim(); + if (stepAnnotationEditorVal) { + curEntry.stepAnnotation = stepAnnotationEditorVal; + } + else { + delete curEntry.stepAnnotation; // go as far as to DELETE this field entirely + } + + myViz.initStepAnnotation(); + + myViz.showVizHeaderViewMode(); + + // redraw all connectors and bubbles in new vertical position .. + myViz.redrawConnectors(); + myViz.redrawAllAnnotationBubbles(); +} + +ExecutionVisualizer.prototype.enterEditAnnotationsMode = function() { + this.editAnnotationMode = true; + + // TODO: check for memory leaks!!! + var myViz = this; + + var curEntry = this.curTrace[this.curInstr]; + + if (!myViz.allAnnotationBubbles) { + myViz.initAllAnnotationBubbles(); + } + + $.each(myViz.allAnnotationBubbles, function(i, e) { + e.enterEditMode(); + }); + + + if (curEntry.stepAnnotation) { + myViz.domRoot.find("#stepAnnotationEditor").val(curEntry.stepAnnotation); + } + else { + myViz.domRoot.find("#stepAnnotationEditor").val(''); + } + + + myViz.showVizHeaderEditMode(); + + // redraw all connectors and bubbles in new vertical position .. + myViz.redrawConnectors(); + myViz.redrawAllAnnotationBubbles(); +} + + +ExecutionVisualizer.prototype.redrawAllAnnotationBubbles = function() { + if (this.allAnnotationBubbles) { + $.each(this.allAnnotationBubbles, function(i, e) { + e.redrawBubble(); + }); + } +} + + +// find the previous/next breakpoint to c or return -1 if it doesn't exist +ExecutionVisualizer.prototype.findPrevBreakpoint = function() { + var myViz = this; + var c = myViz.curInstr; + + if (myViz.sortedBreakpointsList.length == 0) { + return -1; + } + else { + for (var i = 1; i < myViz.sortedBreakpointsList.length; i++) { + var prev = myViz.sortedBreakpointsList[i-1]; + var cur = myViz.sortedBreakpointsList[i]; + if (c <= prev) + return -1; + if (cur >= c) + return prev; + } + + // final edge case: + var lastElt = myViz.sortedBreakpointsList[myViz.sortedBreakpointsList.length - 1]; + return (lastElt < c) ? lastElt : -1; + } +} + +ExecutionVisualizer.prototype.findNextBreakpoint = function() { + var myViz = this; + var c = myViz.curInstr; + + if (myViz.sortedBreakpointsList.length == 0) { + return -1; + } + // usability hack: if you're currently on a breakpoint, then + // single-step forward to the next execution point, NOT the next + // breakpoint. it's often useful to see what happens when the line + // at a breakpoint executes. + else if ($.inArray(c, myViz.sortedBreakpointsList) >= 0) { + return c + 1; + } + else { + for (var i = 0; i < myViz.sortedBreakpointsList.length - 1; i++) { + var cur = myViz.sortedBreakpointsList[i]; + var next = myViz.sortedBreakpointsList[i+1]; + if (c < cur) + return cur; + if (cur <= c && c < next) // subtle + return next; + } + + // final edge case: + var lastElt = myViz.sortedBreakpointsList[myViz.sortedBreakpointsList.length - 1]; + return (lastElt > c) ? lastElt : -1; + } +} + + +// returns true if action successfully taken +ExecutionVisualizer.prototype.stepForward = function() { + var myViz = this; + + if (myViz.editAnnotationMode) { + return; + } + + if (myViz.curInstr < myViz.curTrace.length - 1) { + // if there is a next breakpoint, then jump to it ... + if (myViz.sortedBreakpointsList.length > 0) { + var nextBreakpoint = myViz.findNextBreakpoint(); + if (nextBreakpoint != -1) + myViz.curInstr = nextBreakpoint; + else + myViz.curInstr += 1; // prevent "getting stuck" on a solitary breakpoint + } + else { + myViz.curInstr += 1; + } + myViz.updateOutput(true); + return true; + } + + return false; +} + +// returns true if action successfully taken +ExecutionVisualizer.prototype.stepBack = function() { + var myViz = this; + + if (myViz.editAnnotationMode) { + return; + } + + if (myViz.curInstr > 0) { + // if there is a prev breakpoint, then jump to it ... + if (myViz.sortedBreakpointsList.length > 0) { + var prevBreakpoint = myViz.findPrevBreakpoint(); + if (prevBreakpoint != -1) + myViz.curInstr = prevBreakpoint; + else + myViz.curInstr -= 1; // prevent "getting stuck" on a solitary breakpoint + } + else { + myViz.curInstr -= 1; + } + myViz.updateOutput(); + return true; + } + + return false; +} + + +ExecutionVisualizer.prototype.renderPyCodeOutput = function() { + var myViz = this; // to prevent confusion of 'this' inside of nested functions + + + // initialize! + this.breakpoints = d3.map(); + this.sortedBreakpointsList = []; + this.hoverBreakpoints = d3.map(); + + // an array of objects with the following fields: + // 'text' - the text of the line of code + // 'lineNumber' - one-indexed (always the array index + 1) + // 'executionPoints' - an ordered array of zero-indexed execution points where this line was executed + // 'breakpointHere' - has a breakpoint been set here? + this.codeOutputLines = []; + + + function renderSliderBreakpoints() { + myViz.domRoot.find("#executionSliderFooter").empty(); + + // I originally didn't want to delete and re-create this overlay every time, + // but if I don't do so, there are weird flickering artifacts with clearing + // the SVG container; so it's best to just delete and re-create the container each time + var sliderOverlay = myViz.domRootD3.select('#executionSliderFooter') + .append('svg') + .attr('id', 'sliderOverlay') + .attr('width', myViz.domRoot.find('#executionSlider').width()) + .attr('height', 12); + + var xrange = d3.scale.linear() + .domain([0, myViz.curTrace.length - 1]) + .range([0, myViz.domRoot.find('#executionSlider').width()]); + + sliderOverlay.selectAll('rect') + .data(myViz.sortedBreakpointsList) + .enter().append('rect') + .attr('x', function(d, i) { + // make the edge cases look decent + if (d == 0) { + return 0; + } + else { + return xrange(d) - 3; + } + }) + .attr('y', 0) + .attr('width', 2) + .attr('height', 12) + .style('fill', function(d) { + if (myViz.hoverBreakpoints.has(d)) { + return hoverBreakpointColor; + } + else { + return breakpointColor; + } + }); + } + + function _getSortedBreakpointsList() { + var ret = []; + myViz.breakpoints.forEach(function(k, v) { + ret.push(Number(k)); // these should be NUMBERS, not strings + }); + ret.sort(function(x,y){return x-y}); // WTF, javascript sort is lexicographic by default! + return ret; + } + + function addToBreakpoints(executionPoints) { + $.each(executionPoints, function(i, ep) { + myViz.breakpoints.set(ep, 1); + }); + myViz.sortedBreakpointsList = _getSortedBreakpointsList(); + } + + function removeFromBreakpoints(executionPoints) { + $.each(executionPoints, function(i, ep) { + myViz.breakpoints.remove(ep); + }); + myViz.sortedBreakpointsList = _getSortedBreakpointsList(); + } + + + function setHoverBreakpoint(t) { + var exePts = d3.select(t).datum().executionPoints; + + // don't do anything if exePts is empty + // (i.e., this line was never executed) + if (!exePts || exePts.length == 0) { + return; + } + + myViz.hoverBreakpoints = d3.map(); + $.each(exePts, function(i, ep) { + // don't add redundant entries + if (!myViz.breakpoints.has(ep)) { + myViz.hoverBreakpoints.set(ep, 1); + } + }); + + addToBreakpoints(exePts); + renderSliderBreakpoints(); + } + + + function setBreakpoint(t) { + var exePts = d3.select(t).datum().executionPoints; + + // don't do anything if exePts is empty + // (i.e., this line was never executed) + if (!exePts || exePts.length == 0) { + return; + } + + addToBreakpoints(exePts); + + // remove from hoverBreakpoints so that slider display immediately changes color + $.each(exePts, function(i, ep) { + myViz.hoverBreakpoints.remove(ep); + }); + + d3.select(t.parentNode).select('td.lineNo').style('color', breakpointColor); + d3.select(t.parentNode).select('td.lineNo').style('font-weight', 'bold'); + + renderSliderBreakpoints(); + } + + function unsetBreakpoint(t) { + var exePts = d3.select(t).datum().executionPoints; + + // don't do anything if exePts is empty + // (i.e., this line was never executed) + if (!exePts || exePts.length == 0) { + return; + } + + removeFromBreakpoints(exePts); + + var lineNo = d3.select(t).datum().lineNumber; + + renderSliderBreakpoints(); + } + + var lines = this.curInputCode.split('\n'); + + for (var i = 0; i < lines.length; i++) { + var cod = lines[i]; + + var n = {}; + n.text = cod; + n.lineNumber = i + 1; + n.executionPoints = []; + n.breakpointHere = false; + + $.each(this.curTrace, function(j, elt) { + if (elt.line == n.lineNumber) { + n.executionPoints.push(j); + } + }); + + + // if there is a comment containing 'breakpoint' and this line was actually executed, + // then set a breakpoint on this line + var breakpointInComment = false; + var toks = cod.split('#'); + for (var j = 1 /* start at index 1, not 0 */; j < toks.length; j++) { + if (toks[j].indexOf('breakpoint') != -1) { + breakpointInComment = true; + } + } + + if (breakpointInComment && n.executionPoints.length > 0) { + n.breakpointHere = true; + addToBreakpoints(n.executionPoints); + } + + this.codeOutputLines.push(n); + } + + + myViz.domRoot.find('#pyCodeOutputDiv').empty(); + + // maps this.codeOutputLines to both table columns + var codeOutputD3 = this.domRootD3.select('#pyCodeOutputDiv') + .append('table') + .attr('id', 'pyCodeOutput') + .selectAll('tr') + .data(this.codeOutputLines) + .enter().append('tr') + .selectAll('td') + .data(function(d, i){return [d, d] /* map full data item down both columns */;}) + .enter().append('td') + .attr('class', function(d, i) { + if (i == 0) { + return 'lineNo'; + } + else { + return 'cod'; + } + }) + .attr('id', function(d, i) { + if (i == 0) { + return 'lineNo' + d.lineNumber; + } + else { + return myViz.generateID('cod' + d.lineNumber); // make globally unique (within the page) + } + }) + .html(function(d, i) { + if (i == 0) { + return d.lineNumber; + } + else { + return htmlspecialchars(d.text); + } + }); + + // create a left-most gutter td that spans ALL rows ... + // (NB: valign="top" is CRUCIAL for this to work in IE) + if (myViz.params.arrowLines) { + myViz.domRoot.find('#pyCodeOutput tr:first') + .prepend(''); + + // create prevLineArrow and curLineArrow + myViz.domRootD3.select('svg#leftCodeGutterSVG') + .append('polygon') + .attr('id', 'prevLineArrow') + .attr('points', SVG_ARROW_POLYGON) + .attr('fill', lightArrowColor); + + myViz.domRootD3.select('svg#leftCodeGutterSVG') + .append('polygon') + .attr('id', 'curLineArrow') + .attr('points', SVG_ARROW_POLYGON) + .attr('fill', darkArrowColor); + } + + // 2012-09-05: Disable breakpoints for now to simplify UX + /* + if (!this.params.embeddedMode) { + codeOutputD3.style('cursor', function(d, i) {return 'pointer'}) + .on('mouseover', function() { + setHoverBreakpoint(this); + }) + .on('mouseout', function() { + myViz.hoverBreakpoints = d3.map(); + + var breakpointHere = d3.select(this).datum().breakpointHere; + + if (!breakpointHere) { + unsetBreakpoint(this); + } + + renderSliderBreakpoints(); // get rid of hover breakpoint colors + }) + .on('mousedown', function() { + // don't do anything if exePts is empty + // (i.e., this line was never executed) + var exePts = d3.select(this).datum().executionPoints; + if (!exePts || exePts.length == 0) { + return; + } + + // toggle breakpoint + d3.select(this).datum().breakpointHere = !d3.select(this).datum().breakpointHere; + + var breakpointHere = d3.select(this).datum().breakpointHere; + if (breakpointHere) { + setBreakpoint(this); + } + else { + unsetBreakpoint(this); + } + }); + + renderSliderBreakpoints(); // renders breakpoints written in as code comments + } + */ + +} + + +// takes a string inputStr and returns an HTML version with +// the characters from [highlightIndex, highlightIndex+extent) highlighted with +// a span of class highlightCssClass +function htmlWithHighlight(inputStr, highlightInd, extent, highlightCssClass) { + var prefix = ''; + if (highlightInd > 0) { + prefix = inputStr.slice(0, highlightInd); + } + + var highlightedChars = inputStr.slice(highlightInd, highlightInd + extent); + + var suffix = ''; + if (highlightInd + extent < inputStr.length) { + suffix = inputStr.slice(highlightInd + extent, inputStr.length); + } + + // ... then set the current line to lineHTML + var lineHTML = htmlspecialchars(prefix) + + '' + + htmlspecialchars(highlightedChars) + + '' + + htmlspecialchars(suffix); + return lineHTML; +} + + +// This function is called every time the display needs to be updated +// smoothTransition is OPTIONAL! +ExecutionVisualizer.prototype.updateOutput = function(smoothTransition) { + assert(this.curTrace); + + var myViz = this; // to prevent confusion of 'this' inside of nested functions + + // there's no point in re-rendering if this pane isn't even visible in the first place! + if (!myViz.domRoot.is(':visible')) { + return; + } + + + // really nitpicky!!! gets the difference in width between the code display + // and the maximum width of its enclosing div + myViz.codeHorizontalOverflow = myViz.domRoot.find('#pyCodeOutput').width() - myViz.domRoot.find('#pyCodeOutputDiv').width(); + // should always be positive + if (myViz.codeHorizontalOverflow < 0) { + myViz.codeHorizontalOverflow = 0; + } + + + // crucial resets for annotations (TODO: kludgy) + myViz.destroyAllAnnotationBubbles(); + myViz.initStepAnnotation(); + + + var prevDataVizHeight = myViz.domRoot.find('#dataViz').height(); + + + var gutterSVG = myViz.domRoot.find('svg#leftCodeGutterSVG'); + + // one-time initialization of the left gutter + // (we often can't do this earlier since the entire pane + // might be invisible and hence returns a height of zero or NaN + // -- the exact format depends on browser) + if (!myViz.leftGutterSvgInitialized && myViz.params.arrowLines) { + // set the gutter's height to match that of its parent + gutterSVG.height(gutterSVG.parent().height()); + + var firstRowOffsetY = myViz.domRoot.find('table#pyCodeOutput tr:first').offset().top; + + // first take care of edge case when there's only one line ... + myViz.codeRowHeight = myViz.domRoot.find('table#pyCodeOutput td.cod:first').height(); + + // ... then handle the (much more common) multi-line case ... + // this weird contortion is necessary to get the accurate row height on Internet Explorer + // (simpler methods work on all other major browsers, erghhhhhh!!!) + if (this.codeOutputLines && this.codeOutputLines.length > 1) { + var secondRowOffsetY = myViz.domRoot.find('table#pyCodeOutput tr:nth-child(2)').offset().top; + myViz.codeRowHeight = secondRowOffsetY - firstRowOffsetY; + } + + assert(myViz.codeRowHeight > 0); + + var gutterOffsetY = gutterSVG.offset().top; + var teenyAdjustment = gutterOffsetY - firstRowOffsetY; + + // super-picky detail to adjust the vertical alignment of arrows so that they line up + // well with the pointed-to code text ... + // (if you want to manually adjust tableTop, then ~5 is a reasonable number) + myViz.arrowOffsetY = Math.floor((myViz.codeRowHeight / 2) - (SVG_ARROW_HEIGHT / 2)) - teenyAdjustment; + + myViz.leftGutterSvgInitialized = true; + } + + if (myViz.params.arrowLines) { + assert(myViz.arrowOffsetY !== undefined); + assert(myViz.codeRowHeight !== undefined); + assert(0 <= myViz.arrowOffsetY && myViz.arrowOffsetY <= myViz.codeRowHeight); + } + + // call the callback if necessary (BEFORE rendering) + if (this.params.updateOutputCallback) { + this.params.updateOutputCallback(this); + } + + + var curEntry = this.curTrace[this.curInstr]; + var hasError = false; + // bnm Render a question + if (curEntry.question) { + //alert(curEntry.question.text); + + $('#'+curEntry.question.div).modal({position:["25%","50%"]}); + } + + // render VCR controls: + var totalInstrs = this.curTrace.length; + + var isLastInstr = (this.curInstr == (totalInstrs-1)); + + var vcrControls = myViz.domRoot.find("#vcrControls"); + + if (isLastInstr) { + if (this.promptForUserInput || this.promptForMouseInput) { + vcrControls.find("#curInstr").html('user input'); + // looks ugly when userInputPromptStr is TOO LONG + //vcrControls.find("#curInstr").html('' + this.userInputPromptStr + ''); + + // don't do smooth transition since prompt() is modal so it doesn't + // give the animation background thread time to run + smoothTransition = false; + } + else if (this.instrLimitReached) { + vcrControls.find("#curInstr").html("Instruction limit reached"); + } + else { + vcrControls.find("#curInstr").html("Program terminated"); + } + } + else { + vcrControls.find("#curInstr").html("Step " + + String(this.curInstr + 1) + + " of " + String(totalInstrs-1)); + } + + + vcrControls.find("#jmpFirstInstr").attr("disabled", false); + vcrControls.find("#jmpStepBack").attr("disabled", false); + vcrControls.find("#jmpStepFwd").attr("disabled", false); + vcrControls.find("#jmpLastInstr").attr("disabled", false); + + if (this.curInstr == 0) { + vcrControls.find("#jmpFirstInstr").attr("disabled", true); + vcrControls.find("#jmpStepBack").attr("disabled", true); + } + if (isLastInstr) { + vcrControls.find("#jmpLastInstr").attr("disabled", true); + vcrControls.find("#jmpStepFwd").attr("disabled", true); + } + + + // PROGRAMMATICALLY change the value, so evt.originalEvent should be undefined + myViz.domRoot.find('#executionSlider').slider('value', this.curInstr); + + + // render error (if applicable): + if (curEntry.event == 'exception' || + curEntry.event == 'uncaught_exception') { + assert(curEntry.exception_msg); + + if (curEntry.exception_msg == "Unknown error") { + myViz.domRoot.find("#errorOutput").html('Unknown error: Please email a bug report to philip@pgbovine.net'); + } + else { + myViz.domRoot.find("#errorOutput").html(htmlspecialchars(curEntry.exception_msg)); + } + + myViz.domRoot.find("#errorOutput").show(); + + hasError = true; + } + else { + if (!this.instrLimitReached) { // ugly, I know :/ + myViz.domRoot.find("#errorOutput").hide(); + } + } + + + function highlightCodeLine() { + /* if instrLimitReached, then treat like a normal non-terminating line */ + var isTerminated = (!myViz.instrLimitReached && isLastInstr); + + var pcod = myViz.domRoot.find('#pyCodeOutputDiv'); + + var curLineNumber = null; + var prevLineNumber = null; + + // only relevant if in myViz.pyCrazyMode + var prevColumn = undefined; + var prevExprStartCol = undefined; + var prevExprWidth = undefined; + + var curIsReturn = (curEntry.event == 'return'); + var prevIsReturn = false; + + + if (myViz.curInstr > 0) { + prevLineNumber = myViz.curTrace[myViz.curInstr - 1].line; + prevIsReturn = (myViz.curTrace[myViz.curInstr - 1].event == 'return'); + + if (myViz.pyCrazyMode) { + var p = myViz.curTrace[myViz.curInstr - 1]; + prevColumn = p.column; + // if these don't exist, set reasonable defaults + prevExprStartCol = (p.expr_start_col !== undefined) ? p.expr_start_col : p.column; + prevExprWidth = (p.expr_width !== undefined) ? p.expr_width : 1; + } + } + + curLineNumber = curEntry.line; + + if (myViz.pyCrazyMode) { + var curColumn = curEntry.column; + + // if these don't exist, set reasonable defaults + var curExprStartCol = (curEntry.expr_start_col !== undefined) ? curEntry.expr_start_col : curColumn; + var curExprWidth = (curEntry.expr_width !== undefined) ? curEntry.expr_width : 1; + + var curLineInfo = myViz.codeOutputLines[curLineNumber - 1]; + assert(curLineInfo.lineNumber == curLineNumber); + var codeAtLine = curLineInfo.text; + + // shotgun approach: reset ALL lines to their natural (unbolded) state + $.each(myViz.codeOutputLines, function(i, e) { + var d = myViz.generateID('cod' + e.lineNumber); + myViz.domRoot.find('#' + d).html(htmlspecialchars(e.text)); + }); + + + // Three possible cases: + // 1. previous and current trace entries are on the SAME LINE + // 2. previous and current trace entries are on different lines + // 3. there is no previous trace entry + + if (prevLineNumber == curLineNumber) { + var curLineHTML = ''; + + // tricky tricky! + // generate a combined line with both previous and current + // columns highlighted + + for (var i = 0; i < codeAtLine.length; i++) { + var isCur = (curExprStartCol <= i) && (i < curExprStartCol + curExprWidth); + var isPrev = (prevExprStartCol <= i) && (i < prevExprStartCol + prevExprWidth); + + var htmlEscapedChar = htmlspecialchars(codeAtLine[i]); + + if (isCur && isPrev) { + curLineHTML += '' + htmlEscapedChar + ''; + } + else if (isPrev) { + curLineHTML += '' + htmlEscapedChar + ''; + } + else if (isCur) { + curLineHTML += '' + htmlEscapedChar + ''; + } + else { + curLineHTML += htmlEscapedChar; + } + } + + assert(curLineHTML); + myViz.domRoot.find('#' + myViz.generateID('cod' + curLineNumber)).html(curLineHTML); + } + else { + if (prevLineNumber) { + var prevLineInfo = myViz.codeOutputLines[prevLineNumber - 1]; + var prevLineHTML = htmlWithHighlight(prevLineInfo.text, prevExprStartCol, prevExprWidth, 'pycrazy-highlight-prev'); + myViz.domRoot.find('#' + myViz.generateID('cod' + prevLineNumber)).html(prevLineHTML); + } + var curLineHTML = htmlWithHighlight(codeAtLine, curExprStartCol, curExprWidth, 'pycrazy-highlight-cur'); + myViz.domRoot.find('#' + myViz.generateID('cod' + curLineNumber)).html(curLineHTML); + } + } + + // on 'return' events, give a bit more of a vertical nudge to show that + // the arrow is aligned with the 'bottom' of the line ... + var prevVerticalNudge = prevIsReturn ? Math.floor(myViz.codeRowHeight / 2) : 0; + var curVerticalNudge = curIsReturn ? Math.floor(myViz.codeRowHeight / 2) : 0; + + + // edge case for the final instruction :0 + if (isTerminated && !hasError) { + // don't show redundant arrows on the same line when terminated ... + if (prevLineNumber == curLineNumber) { + curLineNumber = null; + } + // otherwise have a smaller vertical nudge (to fit at bottom of display table) + else { + curVerticalNudge = curVerticalNudge - 2; + } + } + + if (myViz.params.arrowLines) { + if (prevLineNumber) { + var pla = myViz.domRootD3.select('#prevLineArrow'); + var translatePrevCmd = 'translate(0, ' + (((prevLineNumber - 1) * myViz.codeRowHeight) + myViz.arrowOffsetY + prevVerticalNudge) + ')'; + + if (smoothTransition) { + pla + .transition() + .duration(200) + .attr('fill', 'white') + .each('end', function() { + pla + .attr('transform', translatePrevCmd) + .attr('fill', lightArrowColor); + + gutterSVG.find('#prevLineArrow').show(); // show at the end to avoid flickering + }); + } + else { + pla.attr('transform', translatePrevCmd) + gutterSVG.find('#prevLineArrow').show(); + } + + } + else { + gutterSVG.find('#prevLineArrow').hide(); + } + + if (curLineNumber) { + var cla = myViz.domRootD3.select('#curLineArrow'); + var translateCurCmd = 'translate(0, ' + (((curLineNumber - 1) * myViz.codeRowHeight) + myViz.arrowOffsetY + curVerticalNudge) + ')'; + + if (smoothTransition) { + cla + .transition() + .delay(200) + .duration(250) + .attr('transform', translateCurCmd); + } + else { + cla.attr('transform', translateCurCmd); + } + + gutterSVG.find('#curLineArrow').show(); + } + else { + gutterSVG.find('#curLineArrow').hide(); + } + } + + myViz.domRootD3.selectAll('#pyCodeOutputDiv td.cod') + .style('border-top', function(d) { + if (hasError && (d.lineNumber == curEntry.line)) { + return '1px solid ' + errorColor; + } + else { + return ''; + } + }) + .style('border-bottom', function(d) { + // COPY AND PASTE ALERT! + if (hasError && (d.lineNumber == curEntry.line)) { + return '1px solid ' + errorColor; + } + else { + return ''; + } + }); + + // returns True iff lineNo is visible in pyCodeOutputDiv + function isOutputLineVisible(lineNo) { + var lineNoTd = myViz.domRoot.find('#lineNo' + lineNo); + var LO = lineNoTd.offset().top; + + var PO = pcod.offset().top; + var ST = pcod.scrollTop(); + var H = pcod.height(); + + // add a few pixels of fudge factor on the bottom end due to bottom scrollbar + return (PO <= LO) && (LO < (PO + H - 30)); + } + + + // smoothly scroll pyCodeOutputDiv so that the given line is at the center + function scrollCodeOutputToLine(lineNo) { + var lineNoTd = myViz.domRoot.find('#lineNo' + lineNo); + var LO = lineNoTd.offset().top; + + var PO = pcod.offset().top; + var ST = pcod.scrollTop(); + var H = pcod.height(); + + pcod.stop(); // first stop all previously-queued animations + pcod.animate({scrollTop: (ST + (LO - PO - (Math.round(H / 2))))}, 300); + } + + if (myViz.params.highlightLines) { + myViz.domRoot.find('#pyCodeOutputDiv td.cod').removeClass('highlight-prev'); + myViz.domRoot.find('#pyCodeOutputDiv td.cod').removeClass('highlight-cur'); + if (curLineNumber) + myViz.domRoot.find('#'+myViz.generateID('cod'+curLineNumber)).addClass('highlight-cur'); + if (prevLineNumber) + myViz.domRoot.find('#'+myViz.generateID('cod'+prevLineNumber)).addClass('highlight-prev'); + } + + + // smoothly scroll code display + if (!isOutputLineVisible(curEntry.line)) { + scrollCodeOutputToLine(curEntry.line); + } + + } // end of highlightCodeLine + + + // render code output: + if (curEntry.line) { + highlightCodeLine(); + } + + // render stdout: + + // if there isn't anything in curEntry.stdout, don't even bother + // displaying the pane + if (curEntry.stdout) { + this.domRoot.find('#progOutputs').show(); + + // keep original horizontal scroll level: + var oldLeft = myViz.domRoot.find("#pyStdout").scrollLeft(); + myViz.domRoot.find("#pyStdout").val(curEntry.stdout); + + myViz.domRoot.find("#pyStdout").scrollLeft(oldLeft); + // scroll to bottom, though: + myViz.domRoot.find("#pyStdout").scrollTop(myViz.domRoot.find("#pyStdout")[0].scrollHeight); + } + else { + this.domRoot.find('#progOutputs').hide(); + } + + + // inject user-specified HTML/CSS/JS output: + // YIKES -- HUGE CODE INJECTION VULNERABILITIES :O + myViz.domRoot.find("#htmlOutputDiv").empty(); + if (curEntry.html_output) { + if (curEntry.css_output) { + myViz.domRoot.find("#htmlOutputDiv").append(''); + } + myViz.domRoot.find("#htmlOutputDiv").append(curEntry.html_output); + + // inject and run JS *after* injecting HTML and CSS + if (curEntry.js_output) { + // NB: when jQuery injects JS, it executes the code immediately + // and then removes the entire '); + } + } + + + // finally, render all of the data structures + this.renderDataStructures(); + + this.enterViewAnnotationsMode(); // ... and render optional annotations (if any exist) + + + // call the callback if necessary (BEFORE rendering) + if (myViz.domRoot.find('#dataViz').height() != prevDataVizHeight) { + if (this.params.heightChangeCallback) { + this.params.heightChangeCallback(this); + } + } + + + if (isLastInstr && this.executeCodeWithRawInputFunc) { + if (this.promptForUserInput) { + // blocking prompt dialog! + // put a default string of '' or else it looks ugly in IE + var userInput = prompt(this.userInputPromptStr, ''); + + // if you hit 'Cancel' in prompt(), it returns null + if (userInput !== null) { + // after executing, jump back to this.curInstr to give the + // illusion of continuity + this.executeCodeWithRawInputFunc(userInput, this.curInstr); + } + } + } + +} // end of updateOutput + + +// Pre-compute the layout of top-level heap objects for ALL execution +// points as soon as a trace is first loaded. The reason why we want to +// do this is so that when the user steps through execution points, the +// heap objects don't "jiggle around" (i.e., preserving positional +// invariance). Also, if we set up the layout objects properly, then we +// can take full advantage of d3 to perform rendering and transitions. + +ExecutionVisualizer.prototype.precomputeCurTraceLayouts = function() { + + // curTraceLayouts is a list of top-level heap layout "objects" with the + // same length as curTrace after it's been fully initialized. Each + // element of curTraceLayouts is computed from the contents of its + // immediate predecessor, thus ensuring that objects don't "jiggle + // around" between consecutive execution points. + // + // Each top-level heap layout "object" is itself a LIST of LISTS of + // object IDs, where each element of the outer list represents a row, + // and each element of the inner list represents columns within a + // particular row. Each row can have a different number of columns. Most + // rows have exactly ONE column (representing ONE object ID), but rows + // containing 1-D linked data structures have multiple columns. Each + // inner list element looks something like ['row1', 3, 2, 1] where the + // first element is a unique row ID tag, which is used as a key for d3 to + // preserve "object constancy" for updates, transitions, etc. The row ID + // is derived from the FIRST object ID inserted into the row. Since all + // object IDs are unique, all row IDs will also be unique. + + /* This is a good, simple example to test whether objects "jiggle" + + x = [1, [2, [3, None]]] + y = [4, [5, [6, None]]] + + x[1][1] = y[1] + + */ + this.curTraceLayouts = []; + this.curTraceLayouts.push([]); // pre-seed with an empty sentinel to simplify the code + + assert(this.curTrace.length > 0); + + var myViz = this; // to prevent confusion of 'this' inside of nested functions + + + $.each(this.curTrace, function(i, curEntry) { + var prevLayout = myViz.curTraceLayouts[myViz.curTraceLayouts.length - 1]; + + // make a DEEP COPY of prevLayout to use as the basis for curLine + var curLayout = $.extend(true /* deep copy */ , [], prevLayout); + + // initialize with all IDs from curLayout + var idsToRemove = d3.map(); + $.each(curLayout, function(i, row) { + for (var j = 1 /* ignore row ID tag */; j < row.length; j++) { + idsToRemove.set(row[j], 1); + } + }); + + var idsAlreadyLaidOut = d3.map(); // to prevent infinite recursion + + + function curLayoutIndexOf(id) { + for (var i = 0; i < curLayout.length; i++) { + var row = curLayout[i]; + var index = row.indexOf(id); + if (index > 0) { // index of 0 is impossible since it's the row ID tag + return {row: row, index: index} + } + } + return null; + } + + + function recurseIntoObject(id, curRow, newRow) { + //console.log('recurseIntoObject', id, + // $.extend(true /* make a deep copy */ , [], curRow), + // $.extend(true /* make a deep copy */ , [], newRow)); + + // heuristic for laying out 1-D linked data structures: check for enclosing elements that are + // structurally identical and then lay them out as siblings in the same "row" + var heapObj = curEntry.heap[id]; + assert(heapObj); + + if (heapObj[0] == 'LIST' || heapObj[0] == 'TUPLE' || heapObj[0] == 'SET') { + $.each(heapObj, function(ind, child) { + if (ind < 1) return; // skip type tag + + if (!isPrimitiveType(child)) { + var childID = getRefID(child); + + // comment this out to make "linked lists" that aren't + // structurally equivalent look good, e.g.,: + // x = (1, 2, (3, 4, 5, 6, (7, 8, 9, None))) + //if (structurallyEquivalent(heapObj, curEntry.heap[childID])) { + // updateCurLayout(childID, curRow, newRow); + //} + if (myViz.disableHeapNesting) { + updateCurLayout(childID, [], []); + } + else { + updateCurLayout(childID, curRow, newRow); + } + } + }); + } + else if (heapObj[0] == 'DICT') { + $.each(heapObj, function(ind, child) { + if (ind < 1) return; // skip type tag + + if (myViz.disableHeapNesting) { + var dictKey = child[0]; + if (!isPrimitiveType(dictKey)) { + var keyChildID = getRefID(dictKey); + updateCurLayout(keyChildID, [], []); + } + } + + var dictVal = child[1]; + if (!isPrimitiveType(dictVal)) { + var childID = getRefID(dictVal); + if (structurallyEquivalent(heapObj, curEntry.heap[childID])) { + updateCurLayout(childID, curRow, newRow); + } + else if (myViz.disableHeapNesting) { + updateCurLayout(childID, [], []); + } + } + }); + } + else if (heapObj[0] == 'INSTANCE' || heapObj[0] == 'CLASS') { + jQuery.each(heapObj, function(ind, child) { + var headerLength = (heapObj[0] == 'INSTANCE') ? 2 : 3; + if (ind < headerLength) return; + + if (myViz.disableHeapNesting) { + var instKey = child[0]; + if (!isPrimitiveType(instKey)) { + var keyChildID = getRefID(instKey); + updateCurLayout(keyChildID, [], []); + } + } + + var instVal = child[1]; + if (!isPrimitiveType(instVal)) { + var childID = getRefID(instVal); + if (structurallyEquivalent(heapObj, curEntry.heap[childID])) { + updateCurLayout(childID, curRow, newRow); + } + else if (myViz.disableHeapNesting) { + updateCurLayout(childID, [], []); + } + } + }); + } + } + + + // a krazy function! + // id - the new object ID to be inserted somewhere in curLayout + // (if it's not already in there) + // curRow - a row within curLayout where new linked list + // elements can be appended onto (might be null) + // newRow - a new row that might be spliced into curRow or appended + // as a new row in curLayout + function updateCurLayout(id, curRow, newRow) { + if (idsAlreadyLaidOut.has(id)) { + return; // PUNT! + } + + var curLayoutLoc = curLayoutIndexOf(id); + + var alreadyLaidOut = idsAlreadyLaidOut.has(id); + idsAlreadyLaidOut.set(id, 1); // unconditionally set now + + // if id is already in curLayout ... + if (curLayoutLoc) { + var foundRow = curLayoutLoc.row; + var foundIndex = curLayoutLoc.index; + + idsToRemove.remove(id); // this id is already accounted for! + + // very subtle ... if id hasn't already been handled in + // this iteration, then splice newRow into foundRow. otherwise + // (later) append newRow onto curLayout as a truly new row + if (!alreadyLaidOut) { + // splice the contents of newRow right BEFORE foundIndex. + // (Think about when you're trying to insert in id=3 into ['row1', 2, 1] + // to represent a linked list 3->2->1. You want to splice the 3 + // entry right before the 2 to form ['row1', 3, 2, 1]) + if (newRow.length > 1) { + var args = [foundIndex, 0]; + for (var i = 1; i < newRow.length; i++) { // ignore row ID tag + args.push(newRow[i]); + idsToRemove.remove(newRow[i]); + } + foundRow.splice.apply(foundRow, args); + + // remove ALL elements from newRow since they've all been accounted for + // (but don't reassign it away to an empty list, since the + // CALLER checks its value. TODO: how to get rid of this gross hack?!?) + newRow.splice(0, newRow.length); + } + } + + // recurse to find more top-level linked entries to append onto foundRow + recurseIntoObject(id, foundRow, []); + } + else { + // push id into newRow ... + if (newRow.length == 0) { + newRow.push('row' + id); // unique row ID (since IDs are unique) + } + newRow.push(id); + + // recurse to find more top-level linked entries ... + recurseIntoObject(id, curRow, newRow); + + + // if newRow hasn't been spliced into an existing row yet during + // a child recursive call ... + if (newRow.length > 0) { + if (curRow && curRow.length > 0) { + // append onto the END of curRow if it exists + for (var i = 1; i < newRow.length; i++) { // ignore row ID tag + curRow.push(newRow[i]); + } + } + else { + // otherwise push to curLayout as a new row + // + // TODO: this might not always look the best, since we might + // sometimes want to splice newRow in the MIDDLE of + // curLayout. Consider this example: + // + // x = [1,2,3] + // y = [4,5,6] + // x = [7,8,9] + // + // when the third line is executed, the arrows for x and y + // will be crossed (ugly!) since the new row for the [7,8,9] + // object is pushed to the end (bottom) of curLayout. The + // proper behavior is to push it to the beginning of + // curLayout where the old row for 'x' used to be. + curLayout.push($.extend(true /* make a deep copy */ , [], newRow)); + } + + // regardless, newRow is now accounted for, so clear it + for (var i = 1; i < newRow.length; i++) { // ignore row ID tag + idsToRemove.remove(newRow[i]); + } + newRow.splice(0, newRow.length); // kill it! + } + + } + } + + + // iterate through all globals and ordered stack frames and call updateCurLayout + $.each(curEntry.ordered_globals, function(i, varname) { + var val = curEntry.globals[varname]; + if (val !== undefined) { // might not be defined at this line, which is OKAY! + if (!isPrimitiveType(val)) { + var id = getRefID(val); + updateCurLayout(id, null, []); + } + } + }); + + $.each(curEntry.stack_to_render, function(i, frame) { + $.each(frame.ordered_varnames, function(xxx, varname) { + var val = frame.encoded_locals[varname]; + + if (!isPrimitiveType(val)) { + var id = getRefID(val); + updateCurLayout(id, null, []); + } + }); + }); + + + // iterate through remaining elements of idsToRemove and REMOVE them from curLayout + idsToRemove.forEach(function(id, xxx) { + id = Number(id); // keys are stored as strings, so convert!!! + $.each(curLayout, function(rownum, row) { + var ind = row.indexOf(id); + if (ind > 0) { // remember that index 0 of the row is the row ID tag + row.splice(ind, 1); + } + }); + }); + + // now remove empty rows (i.e., those with only a row ID tag) from curLayout + curLayout = curLayout.filter(function(row) {return row.length > 1}); + + myViz.curTraceLayouts.push(curLayout); + }); + + this.curTraceLayouts.splice(0, 1); // remove seeded empty sentinel element + assert (this.curTrace.length == this.curTraceLayouts.length); +} + + +var heapPtrSrcRE = /__heap_pointer_src_/; + +// The "3.0" version of renderDataStructures renders variables in +// a stack, values in a separate heap, and draws line connectors +// to represent both stack->heap object references and, more importantly, +// heap->heap references. This version was created in August 2012. +// +// The "2.0" version of renderDataStructures renders variables in +// a stack and values in a separate heap, with data structure aliasing +// explicitly represented via line connectors (thanks to jsPlumb lib). +// This version was created in September 2011. +// +// The ORIGINAL "1.0" version of renderDataStructures +// was created in January 2010 and rendered variables and values +// INLINE within each stack frame without any explicit representation +// of data structure aliasing. That is, aliased objects were rendered +// multiple times, and a unique ID label was used to identify aliases. +ExecutionVisualizer.prototype.renderDataStructures = function() { + + var myViz = this; // to prevent confusion of 'this' inside of nested functions + + var curEntry = this.curTrace[this.curInstr]; + var curToplevelLayout = this.curTraceLayouts[this.curInstr]; + + // for simplicity (but sacrificing some performance), delete all + // connectors and redraw them from scratch. doing so avoids mysterious + // jsPlumb connector alignment issues when the visualizer's enclosing + // div contains, say, a "position: relative;" CSS tag + // (which happens in the IPython Notebook) + var existingConnectionEndpointIDs = d3.map(); + myViz.jsPlumbInstance.select({scope: 'varValuePointer'}).each(function(c) { + // This is VERY crude, but to prevent multiple redundant HEAP->HEAP + // connectors from being drawn with the same source and origin, we need to first + // DELETE ALL existing HEAP->HEAP connections, and then re-render all of + // them in each call to this function. The reason why we can't safely + // hold onto them is because there's no way to guarantee that the + // *__heap_pointer_src_ IDs are consistent across execution points. + // + // thus, only add to existingConnectionEndpointIDs if this is NOT heap->heap + if (!c.sourceId.match(heapPtrSrcRE)) { + existingConnectionEndpointIDs.set(c.sourceId, c.targetId); + } + }); + + var existingParentPointerConnectionEndpointIDs = d3.map(); + myViz.jsPlumbInstance.select({scope: 'frameParentPointer'}).each(function(c) { + existingParentPointerConnectionEndpointIDs.set(c.sourceId, c.targetId); + }); + + + // Heap object rendering phase: + + + // Key: CSS ID of the div element representing the stack frame variable + // (for stack->heap connections) or heap object (for heap->heap connections) + // the format is: '__heap_pointer_src_' + // Value: CSS ID of the div element representing the value rendered in the heap + // (the format is: '__heap_object_') + // + // The reason we need to prepend this.visualizerID is because jsPlumb needs + // GLOBALLY UNIQUE IDs for use as connector endpoints. + + // the only elements in these sets are NEW elements to be rendered in this + // particular call to renderDataStructures. + var connectionEndpointIDs = d3.map(); + var heapConnectionEndpointIDs = d3.map(); // subset of connectionEndpointIDs for heap->heap connections + + // analogous to connectionEndpointIDs, except for environment parent pointers + var parentPointerConnectionEndpointIDs = d3.map(); + + var heap_pointer_src_id = 1; // increment this to be unique for each heap_pointer_src_* + + + var renderedObjectIDs = d3.map(); + + // count everything in curToplevelLayout as already rendered since we will render them + // in d3 .each() statements + $.each(curToplevelLayout, function(xxx, row) { + for (var i = 0; i < row.length; i++) { + renderedObjectIDs.set(row[i], 1); + } + }); + + + + // use d3 to render the heap by mapping curToplevelLayout into + // and '); + var headerTr = tbl.find('tr:first'); + var contentTr = tbl.find('tr:last'); + $.each(obj, function(ind, val) { + if (ind < 1) return; // skip type tag and ID entry + + // add a new column and then pass in that newly-added column + // as d3DomElement to the recursive call to child: + headerTr.append(''); + headerTr.find('td:last').append(ind - 1); + + contentTr.append(''); + renderNestedObject(val, contentTr.find('td:last')); + }); + } + else if (obj[0] == 'SET') { + // create an R x C matrix: + var numElts = obj.length - 1; + + // gives roughly a 3x5 rectangular ratio, square is too, err, + // 'square' and boring + var numRows = Math.round(Math.sqrt(numElts)); + if (numRows > 3) { + numRows -= 1; + } + + var numCols = Math.round(numElts / numRows); + // round up if not a perfect multiple: + if (numElts % numRows) { + numCols += 1; + } + + jQuery.each(obj, function(ind, val) { + if (ind < 1) return; // skip 'SET' tag + + if (((ind - 1) % numCols) == 0) { + tbl.append(''); + } + + var curTr = tbl.find('tr:last'); + curTr.append(''); + renderNestedObject(val, curTr.find('td:last')); + }); + } + else if (obj[0] == 'DICT') { + $.each(obj, function(ind, kvPair) { + if (ind < 1) return; // skip 'DICT' tag + + tbl.append(''); + var newRow = tbl.find('tr:last'); + var keyTd = newRow.find('td:first'); + var valTd = newRow.find('td:last'); + + var key = kvPair[0]; + var val = kvPair[1]; + + renderNestedObject(key, keyTd); + renderNestedObject(val, valTd); + }); + } + } + } + else if (obj[0] == 'INSTANCE' || obj[0] == 'CLASS') { + var isInstance = (obj[0] == 'INSTANCE'); + var headerLength = isInstance ? 2 : 3; + + assert(obj.length >= headerLength); + + if (isInstance) { + d3DomElement.append('
      ' + typeLabelPrefix + obj[1] + ' instance
      '); + } + else { + var superclassStr = ''; + if (obj[2].length > 0) { + superclassStr += ('[extends ' + obj[2].join(', ') + '] '); + } + d3DomElement.append('
      ' + typeLabelPrefix + obj[1] + ' class ' + superclassStr + + '
      ' + 'hide attributes' + '
      '); + } + + // right now, let's NOT display class members, since that clutters + // up the display too much. in the future, consider displaying + // class members in a pop-up pane on mouseover or mouseclick + // actually nix what i just said above ... + //if (!isInstance) return; + + if (obj.length > headerLength) { + var lab = isInstance ? 'inst' : 'class'; + d3DomElement.append('
      elements + + var heapRows = myViz.domRootD3.select('#heap') + .selectAll('table.heapRow') + .data(curToplevelLayout, function(objLst) { + return objLst[0]; // return first element, which is the row ID tag + }); + + + // insert new heap rows + heapRows.enter().append('table') + //.each(function(objLst, i) {console.log('NEW ROW:', objLst, i);}) + .attr('class', 'heapRow'); + + // delete a heap row + var hrExit = heapRows.exit(); + + if (myViz.enableTransitions) { + hrExit + .style('opacity', '1') + .transition() + .style('opacity', '0') + .duration(500) + .each('end', function() { + hrExit + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + myViz.redrawConnectors(); + }); + } + else { + hrExit + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + } + + + // update an existing heap row + var toplevelHeapObjects = heapRows + //.each(function(objLst, i) { console.log('UPDATE ROW:', objLst, i); }) + .selectAll('td.toplevelHeapObject') + .data(function(d, i) {return d.slice(1, d.length);}, /* map over each row, skipping row ID tag */ + function(objID) {return objID;} /* each object ID is unique for constancy */); + + // insert a new toplevelHeapObject + var tlhEnter = toplevelHeapObjects.enter().append('td') + .attr('class', 'toplevelHeapObject') + .attr('id', function(d, i) {return 'toplevel_heap_object_' + d;}); + + if (myViz.enableTransitions) { + tlhEnter + .style('opacity', '0') + .style('border-color', 'red') + .transition() + .style('opacity', '1') /* fade in */ + .duration(700) + .each('end', function() { + tlhEnter.transition() + .style('border-color', 'white') /* kill border */ + .duration(300) + }); + } + + // remember that the enter selection is added to the update + // selection so that we can process it later ... + + // update a toplevelHeapObject + toplevelHeapObjects + .order() // VERY IMPORTANT to put in the order corresponding to data elements + .each(function(objID, i) { + //console.log('NEW/UPDATE ELT', objID); + + // TODO: add a smoother transition in the future + // Right now, just delete the old element and render a new one in its place + $(this).empty(); + renderCompoundObject(objID, $(this), true); + }); + + // delete a toplevelHeapObject + var tlhExit = toplevelHeapObjects.exit(); + + if (myViz.enableTransitions) { + tlhExit.transition() + .style('opacity', '0') /* fade out */ + .duration(500) + .each('end', function() { + tlhExit + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + myViz.redrawConnectors(); + }); + } + else { + tlhExit + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + } + + + function renderNestedObject(obj, d3DomElement) { + if (isPrimitiveType(obj)) { + renderPrimitiveObject(obj, d3DomElement); + } + else { + renderCompoundObject(getRefID(obj), d3DomElement, false); + } + } + + + function renderPrimitiveObject(obj, d3DomElement) { + var typ = typeof obj; + + if (obj == null) { + d3DomElement.append('None'); + } + else if (typ == "number") { + d3DomElement.append('' + obj + ''); + } + else if (typ == "boolean") { + if (obj) { + d3DomElement.append('True'); + } + else { + d3DomElement.append('False'); + } + } + else if (typ == "string") { + // escape using htmlspecialchars to prevent HTML/script injection + var literalStr = htmlspecialchars(obj); + + // print as a double-quoted string literal + // with explicit newlines as
      + literalStr = literalStr.replace(new RegExp('\n', 'g'), '
      '); // replace ALL + literalStr = literalStr.replace(new RegExp('\"', 'g'), '\\"'); // replace ALL + literalStr = '"' + literalStr + '"'; + + d3DomElement.append('' + literalStr + ''); + } + else if (typ == "object") { + assert(obj[0] == 'SPECIAL_FLOAT'); + d3DomElement.append('' + obj[1] + ''); + } + else { + assert(false); + } + } + + + function renderCompoundObject(objID, d3DomElement, isTopLevel) { + if (!isTopLevel && renderedObjectIDs.has(objID)) { + var srcDivID = myViz.generateID('heap_pointer_src_' + heap_pointer_src_id); + heap_pointer_src_id++; // just make sure each source has a UNIQUE ID + + var dstDivID = myViz.generateID('heap_object_' + objID); + + if (myViz.textualMemoryLabels) { + var labelID = srcDivID + '_text_label'; + d3DomElement.append('
      id' + objID + '
      '); + + myViz.domRoot.find('div#' + labelID).hover( + function() { + myViz.jsPlumbInstance.connect({source: labelID, target: dstDivID, + scope: 'varValuePointer'}); + }, + function() { + myViz.jsPlumbInstance.select({source: labelID}).detach(); + }); + } + else { + // render jsPlumb arrow source since this heap object has already been rendered + // (or will be rendered soon) + + // add a stub so that we can connect it with a connector later. + // IE needs this div to be NON-EMPTY in order to properly + // render jsPlumb endpoints, so that's why we add an " "! + d3DomElement.append('
       
      '); + + assert(!connectionEndpointIDs.has(srcDivID)); + connectionEndpointIDs.set(srcDivID, dstDivID); + //console.log('HEAP->HEAP', srcDivID, dstDivID); + + assert(!heapConnectionEndpointIDs.has(srcDivID)); + heapConnectionEndpointIDs.set(srcDivID, dstDivID); + } + + return; // early return! + } + + + var heapObjID = myViz.generateID('heap_object_' + objID); + + + // wrap ALL compound objects in a heapObject div so that jsPlumb + // connectors can point to it: + d3DomElement.append('
      '); + d3DomElement = myViz.domRoot.find('#' + heapObjID); + + renderedObjectIDs.set(objID, 1); + + var obj = curEntry.heap[objID]; + assert($.isArray(obj)); + + // prepend the type label with a memory address label + var typeLabelPrefix = ''; + if (myViz.textualMemoryLabels) { + typeLabelPrefix = 'id' + objID + ':'; + } + + if (obj[0] == 'LIST' || obj[0] == 'TUPLE' || obj[0] == 'SET' || obj[0] == 'DICT') { + var label = obj[0].toLowerCase(); + + assert(obj.length >= 1); + if (obj.length == 1) { + d3DomElement.append('
      ' + typeLabelPrefix + 'empty ' + label + '
      '); + } + else { + d3DomElement.append('
      ' + typeLabelPrefix + label + '
      '); + d3DomElement.append('
      '); + var tbl = d3DomElement.children('table'); + + if (obj[0] == 'LIST' || obj[0] == 'TUPLE') { + tbl.append('
      '); + + var tbl = d3DomElement.children('table'); + + $.each(obj, function(ind, kvPair) { + if (ind < headerLength) return; // skip header tags + + tbl.append(''); + + var newRow = tbl.find('tr:last'); + var keyTd = newRow.find('td:first'); + var valTd = newRow.find('td:last'); + + // the keys should always be strings, so render them directly (and without quotes): + // (actually this isn't the case when strings are rendered on the heap) + if (typeof kvPair[0] == "string") { + // common case ... + var attrnameStr = htmlspecialchars(kvPair[0]); + keyTd.append('' + attrnameStr + ''); + } + else { + // when strings are rendered as heap objects ... + renderNestedObject(kvPair[0], keyTd); + } + + // values can be arbitrary objects, so recurse: + renderNestedObject(kvPair[1], valTd); + }); + } + + // class attributes can be displayed or hidden, so as not to + // CLUTTER UP the display with a ton of attributes, especially + // from imported modules and custom types created from, say, + // collections.namedtuple + if (!isInstance) { + // super kludgy! use a global selector $ to get at the DOM + // element, which should be okay since IDs should be globally + // unique on a page, even with multiple ExecutionVisualizer + // instances ... but still feels dirty to me since it violates + // my "no using naked $(__) selectors for jQuery" convention :/ + $(d3DomElement.selector + ' .typeLabel #attrToggleLink').click(function() { + var elt = $(d3DomElement.selector + ' .classTbl'); + elt.toggle(); + $(this).html((elt.is(':visible') ? 'hide' : 'show') + ' attributes'); + + if (elt.is(':visible')) { + myViz.classAttrsHidden[d3DomElement.selector] = false; + $(this).html('hide attributes'); + } + else { + myViz.classAttrsHidden[d3DomElement.selector] = true; + $(this).html('show attributes'); + } + + myViz.redrawConnectors(); // redraw all arrows! + + return false; // so that the doesn't reload the page + }); + + // "remember" whether this was hidden earlier during this + // visualization session + if (myViz.classAttrsHidden[d3DomElement.selector]) { + $(d3DomElement.selector + ' .classTbl').hide(); + $(d3DomElement.selector + ' .typeLabel #attrToggleLink').html('show attributes'); + } + } + } + else if (obj[0] == 'INSTANCE_PPRINT') { + d3DomElement.append('
      ' + typeLabelPrefix + obj[1] + ' instance
      '); + + strRepr = htmlspecialchars(obj[2]); // escape strings! + d3DomElement.append('
      ' + strRepr + '
      '); + } + else if (obj[0] == 'FUNCTION') { + assert(obj.length == 3); + + // pretty-print lambdas and display other weird characters: + var funcName = htmlspecialchars(obj[1]).replace('<lambda>', '\u03bb'); + var parentFrameID = obj[2]; // optional + + if (!myViz.compactFuncLabels) { + d3DomElement.append('
      ' + typeLabelPrefix + 'function
      '); + } + + var funcPrefix = myViz.compactFuncLabels ? 'func' : ''; + + if (parentFrameID) { + d3DomElement.append('
      ' + funcPrefix + ' ' + funcName + ' [parent=f'+ parentFrameID + ']
      '); + } + else { + d3DomElement.append('
      ' + funcPrefix + ' ' + funcName + '
      '); + } + } + else if (obj[0] == 'HEAP_PRIMITIVE') { + assert(obj.length == 3); + + var typeName = obj[1]; + var primitiveVal = obj[2]; + + // add a bit of padding to heap primitives, for aesthetics + d3DomElement.append('
      '); + d3DomElement.find('div.heapPrimitive').append('
      ' + typeLabelPrefix + typeName + '
      '); + renderPrimitiveObject(primitiveVal, d3DomElement.find('div.heapPrimitive')); + } + else { + // render custom data type + assert(obj.length == 2); + + var typeName = obj[0]; + var strRepr = obj[1]; + + strRepr = htmlspecialchars(strRepr); // escape strings! + + d3DomElement.append('
      ' + typeLabelPrefix + typeName + '
      '); + d3DomElement.append('
      ' + strRepr + '
      '); + } + } + + + // Render globals and then stack frames using d3: + + + // TODO: this sometimes seems buggy on Safari, so nix it for now: + function highlightAliasedConnectors(d, i) { + // if this row contains a stack pointer, then highlight its arrow and + // ALL aliases that also point to the same heap object + var stackPtrId = $(this).find('div.stack_pointer').attr('id'); + if (stackPtrId) { + var foundTargetId = null; + myViz.jsPlumbInstance.select({source: stackPtrId}).each(function(c) {foundTargetId = c.targetId;}); + + // use foundTargetId to highlight ALL ALIASES + myViz.jsPlumbInstance.select().each(function(c) { + if (c.targetId == foundTargetId) { + c.setHover(true); + $(c.canvas).css("z-index", 2000); // ... and move it to the VERY FRONT + } + else { + c.setHover(false); + } + }); + } + } + + function unhighlightAllConnectors(d, i) { + myViz.jsPlumbInstance.select().each(function(c) { + c.setHover(false); + }); + } + + + + // TODO: coalesce code for rendering globals and stack frames, + // since there's so much copy-and-paste grossness right now + + // render all global variables IN THE ORDER they were created by the program, + // in order to ensure continuity: + + // Derive a list where each element contains varname + // as long as value is NOT undefined. + // (Sometimes entries in curEntry.ordered_globals are undefined, + // so filter those out.) + var realGlobalsLst = []; + $.each(curEntry.ordered_globals, function(i, varname) { + var val = curEntry.globals[varname]; + + // (use '!==' to do an EXACT match against undefined) + if (val !== undefined) { // might not be defined at this line, which is OKAY! + realGlobalsLst.push(varname); + } + }); + + var globalsID = myViz.generateID('globals'); + var globalTblID = myViz.generateID('global_table'); + + var globalVarTable = myViz.domRootD3.select('#' + globalTblID) + .selectAll('tr') + .data(realGlobalsLst, + function(d) {return d;} // use variable name as key + ); + + globalVarTable + .enter() + .append('tr') + .attr('class', 'variableTr') + .attr('id', function(d, i) { + return myViz.generateID(varnameToCssID('global__' + d + '_tr')); // make globally unique (within the page) + }); + + + var globalVarTableCells = globalVarTable + .selectAll('td.stackFrameVar,td.stackFrameValue') + .data(function(d, i){return [d, d];}) /* map varname down both columns */ + + globalVarTableCells.enter() + .append('td') + .attr('class', function(d, i) {return (i == 0) ? 'stackFrameVar' : 'stackFrameValue';}); + + // remember that the enter selection is added to the update + // selection so that we can process it later ... + + // UPDATE + globalVarTableCells + .order() // VERY IMPORTANT to put in the order corresponding to data elements + .each(function(varname, i) { + if (i == 0) { + $(this).html(varname); + } + else { + // always delete and re-render the global var ... + // NB: trying to cache and compare the old value using, + // say -- $(this).attr('data-curvalue', valStringRepr) -- leads to + // a mysterious and killer memory leak that I can't figure out yet + $(this).empty(); + + // make sure varname doesn't contain any weird + // characters that are illegal for CSS ID's ... + var varDivID = myViz.generateID('global__' + varnameToCssID(varname)); + + // need to get rid of the old connector in preparation for rendering a new one: + existingConnectionEndpointIDs.remove(varDivID); + + var val = curEntry.globals[varname]; + if (isPrimitiveType(val)) { + renderPrimitiveObject(val, $(this)); + } + else { + var heapObjID = myViz.generateID('heap_object_' + getRefID(val)); + + if (myViz.textualMemoryLabels) { + var labelID = varDivID + '_text_label'; + $(this).append('
      id' + getRefID(val) + '
      '); + $(this).find('div#' + labelID).hover( + function() { + myViz.jsPlumbInstance.connect({source: labelID, target: heapObjID, + scope: 'varValuePointer'}); + }, + function() { + myViz.jsPlumbInstance.select({source: labelID}).detach(); + }); + } + else { + // add a stub so that we can connect it with a connector later. + // IE needs this div to be NON-EMPTY in order to properly + // render jsPlumb endpoints, so that's why we add an " "! + $(this).append('
       
      '); + + assert(!connectionEndpointIDs.has(varDivID)); + connectionEndpointIDs.set(varDivID, heapObjID); + //console.log('STACK->HEAP', varDivID, heapObjID); + } + } + } + }); + + + + globalVarTableCells.exit() + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + + globalVarTable.exit() + .each(function(d, i) { + // detach all stack_pointer connectors for divs that are being removed + $(this).find('.stack_pointer').each(function(i, sp) { + existingConnectionEndpointIDs.remove($(sp).attr('id')); + }); + + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + + + // for aesthetics, hide globals if there aren't any globals to display + if (curEntry.ordered_globals.length == 0) { + this.domRoot.find('#' + globalsID).hide(); + } + else { + this.domRoot.find('#' + globalsID).show(); + } + + + // holy cow, the d3 code for stack rendering is ABSOLUTELY NUTS! + + var stackDiv = myViz.domRootD3.select('#stack'); + + // VERY IMPORTANT for selectAll selector to be SUPER specific here! + var stackFrameDiv = stackDiv.selectAll('div.stackFrame,div.zombieStackFrame') + .data(curEntry.stack_to_render, function(frame) { + // VERY VERY VERY IMPORTANT for properly handling closures and nested functions + // (see the backend code for more details) + return frame.unique_hash; + }); + + var sfdEnter = stackFrameDiv.enter() + .append('div') + .attr('class', function(d, i) {return d.is_zombie ? 'zombieStackFrame' : 'stackFrame';}) + .attr('id', function(d, i) {return d.is_zombie ? myViz.generateID("zombie_stack" + i) + : myViz.generateID("stack" + i); + }) + // HTML5 custom data attributes + .attr('data-frame_id', function(frame, i) {return frame.frame_id;}) + .attr('data-parent_frame_id', function(frame, i) { + return (frame.parent_frame_id_list.length > 0) ? frame.parent_frame_id_list[0] : null; + }) + .each(function(frame, i) { + if (!myViz.drawParentPointers) { + return; + } + // only run if myViz.drawParentPointers is true ... + + var my_CSS_id = $(this).attr('id'); + + //console.log(my_CSS_id, 'ENTER'); + + // render a parent pointer whose SOURCE node is this frame + // i.e., connect this frame to p, where this.parent_frame_id == p.frame_id + // (if this.parent_frame_id is null, then p is the global frame) + if (frame.parent_frame_id_list.length > 0) { + var parent_frame_id = frame.parent_frame_id_list[0]; + // tricky turkey! + // ok this hack just HAPPENS to work by luck ... usually there will only be ONE frame + // that matches this selector, but sometimes multiple frames match, in which case the + // FINAL frame wins out (since parentPointerConnectionEndpointIDs is a map where each + // key can be mapped to only ONE value). it so happens that the final frame winning + // out looks "desirable" for some of the closure test cases that I've tried. but + // this code is quite brittle :( + myViz.domRoot.find('div#stack [data-frame_id=' + parent_frame_id + ']').each(function(i, e) { + var parent_CSS_id = $(this).attr('id'); + //console.log('connect', my_CSS_id, parent_CSS_id); + parentPointerConnectionEndpointIDs.set(my_CSS_id, parent_CSS_id); + }); + } + else { + // render a parent pointer to the global frame + //console.log('connect', my_CSS_id, globalsID); + // only do this if there are actually some global variables to display ... + if (curEntry.ordered_globals.length > 0) { + parentPointerConnectionEndpointIDs.set(my_CSS_id, globalsID); + } + } + + // tricky turkey: render parent pointers whose TARGET node is this frame. + // i.e., for all frames f such that f.parent_frame_id == my_frame_id, + // connect f to this frame. + // (make sure not to confuse frame IDs with CSS IDs!!!) + var my_frame_id = frame.frame_id; + myViz.domRoot.find('div#stack [data-parent_frame_id=' + my_frame_id + ']').each(function(i, e) { + var child_CSS_id = $(this).attr('id'); + //console.log('connect', child_CSS_id, my_CSS_id); + parentPointerConnectionEndpointIDs.set(child_CSS_id, my_CSS_id); + }); + }); + + sfdEnter + .append('div') + .attr('class', 'stackFrameHeader') + .html(function(frame, i) { + + // pretty-print lambdas and display other weird characters + // (might contain '<' or '>' for weird names like ) + var funcName = htmlspecialchars(frame.func_name).replace('<lambda>', '\u03bb') + .replace('\n', '
      '); + + var headerLabel = funcName; + + // only display if you're someone's parent + if (frame.is_parent) { + headerLabel = 'f' + frame.frame_id + ': ' + headerLabel; + } + + // optional (btw, this isn't a CSS id) + if (frame.parent_frame_id_list.length > 0) { + var parentFrameID = frame.parent_frame_id_list[0]; + headerLabel = headerLabel + ' [parent=f' + parentFrameID + ']'; + } + + return headerLabel; + }); + + sfdEnter + .append('table') + .attr('class', 'stackFrameVarTable'); + + + var stackVarTable = stackFrameDiv + .order() // VERY IMPORTANT to put in the order corresponding to data elements + .select('table').selectAll('tr') + .data(function(frame) { + // each list element contains a reference to the entire frame + // object as well as the variable name + // TODO: look into whether we can use d3 parent nodes to avoid + // this hack ... http://bost.ocks.org/mike/nest/ + return frame.ordered_varnames.map(function(varname) {return {varname:varname, frame:frame};}); + }, + function(d) {return d.varname;} // use variable name as key + ); + + stackVarTable + .enter() + .append('tr') + .attr('class', 'variableTr') + .attr('id', function(d, i) { + return myViz.generateID(varnameToCssID(d.frame.unique_hash + '__' + d.varname + '_tr')); // make globally unique (within the page) + }); + + + var stackVarTableCells = stackVarTable + .selectAll('td.stackFrameVar,td.stackFrameValue') + .data(function(d, i) {return [d, d] /* map identical data down both columns */;}); + + stackVarTableCells.enter() + .append('td') + .attr('class', function(d, i) {return (i == 0) ? 'stackFrameVar' : 'stackFrameValue';}); + + stackVarTableCells + .order() // VERY IMPORTANT to put in the order corresponding to data elements + .each(function(d, i) { + var varname = d.varname; + var frame = d.frame; + + if (i == 0) { + if (varname == '__return__') + $(this).html('Return
      value
      '); + else + $(this).html(varname); + } + else { + // always delete and re-render the stack var ... + // NB: trying to cache and compare the old value using, + // say -- $(this).attr('data-curvalue', valStringRepr) -- leads to + // a mysterious and killer memory leak that I can't figure out yet + $(this).empty(); + + // make sure varname and frame.unique_hash don't contain any weird + // characters that are illegal for CSS ID's ... + var varDivID = myViz.generateID(varnameToCssID(frame.unique_hash + '__' + varname)); + + // need to get rid of the old connector in preparation for rendering a new one: + existingConnectionEndpointIDs.remove(varDivID); + + var val = frame.encoded_locals[varname]; + if (isPrimitiveType(val)) { + renderPrimitiveObject(val, $(this)); + } + else { + var heapObjID = myViz.generateID('heap_object_' + getRefID(val)); + if (myViz.textualMemoryLabels) { + var labelID = varDivID + '_text_label'; + $(this).append('
      id' + getRefID(val) + '
      '); + $(this).find('div#' + labelID).hover( + function() { + myViz.jsPlumbInstance.connect({source: labelID, target: heapObjID, + scope: 'varValuePointer'}); + }, + function() { + myViz.jsPlumbInstance.select({source: labelID}).detach(); + }); + } + else { + // add a stub so that we can connect it with a connector later. + // IE needs this div to be NON-EMPTY in order to properly + // render jsPlumb endpoints, so that's why we add an " "! + $(this).append('
       
      '); + + assert(!connectionEndpointIDs.has(varDivID)); + connectionEndpointIDs.set(varDivID, heapObjID); + //console.log('STACK->HEAP', varDivID, heapObjID); + } + } + } + }); + + + stackVarTableCells.exit() + .each(function(d, idx) { + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + + stackVarTable.exit() + .each(function(d, i) { + $(this).find('.stack_pointer').each(function(i, sp) { + // detach all stack_pointer connectors for divs that are being removed + existingConnectionEndpointIDs.remove($(sp).attr('id')); + }); + + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + + stackFrameDiv.exit() + .each(function(frame, i) { + $(this).find('.stack_pointer').each(function(i, sp) { + // detach all stack_pointer connectors for divs that are being removed + existingConnectionEndpointIDs.remove($(sp).attr('id')); + }); + + var my_CSS_id = $(this).attr('id'); + + //console.log(my_CSS_id, 'EXIT'); + + // Remove all pointers where either the source or destination end is my_CSS_id + existingParentPointerConnectionEndpointIDs.forEach(function(k, v) { + if (k == my_CSS_id || v == my_CSS_id) { + //console.log('remove EPP', k, v); + existingParentPointerConnectionEndpointIDs.remove(k); + } + }); + + $(this).empty(); // crucial for garbage collecting jsPlumb connectors! + }) + .remove(); + + + // NB: ugh, I'm not very happy about this hack, but it seems necessary + // for embedding within sophisticated webpages such as IPython Notebook + + // delete all connectors. do this AS LATE AS POSSIBLE so that + // (presumably) the calls to $(this).empty() earlier in this function + // will properly garbage collect the connectors + // + // WARNING: for environment parent pointers, garbage collection doesn't seem to + // be working as intended :( + // + // I suspect that this is due to the fact that parent pointers are SIBLINGS + // of stackFrame divs and not children, so when stackFrame divs get destroyed, + // their associated parent pointers do NOT.) + myViz.jsPlumbInstance.reset(); + + + // use jsPlumb scopes to keep the different kinds of pointers separated + function renderVarValueConnector(varID, valueID) { + myViz.jsPlumbInstance.connect({source: varID, target: valueID, scope: 'varValuePointer'}); + } + + + var totalParentPointersRendered = 0; + + function renderParentPointerConnector(srcID, dstID) { + // SUPER-DUPER-ugly hack since I can't figure out a cleaner solution for now: + // if either srcID or dstID no longer exists, then SKIP rendering ... + if ((myViz.domRoot.find('#' + srcID).length == 0) || + (myViz.domRoot.find('#' + dstID).length == 0)) { + return; + } + + //console.log('renderParentPointerConnector:', srcID, dstID); + + myViz.jsPlumbInstance.connect({source: srcID, target: dstID, + anchors: ["LeftMiddle", "LeftMiddle"], + + // 'horizontally offset' the parent pointers up so that they don't look as ugly ... + //connector: ["Flowchart", { stub: 9 + (6 * (totalParentPointersRendered + 1)) }], + + // actually let's try a bezier curve ... + connector: [ "Bezier", { curviness: 45 }], + + endpoint: ["Dot", {radius: 4}], + //hoverPaintStyle: {lineWidth: 1, strokeStyle: connectorInactiveColor}, // no hover colors + scope: 'frameParentPointer'}); + totalParentPointersRendered++; + } + + if (!myViz.textualMemoryLabels) { + // re-render existing connectors and then ... + existingConnectionEndpointIDs.forEach(renderVarValueConnector); + // add all the NEW connectors that have arisen in this call to renderDataStructures + connectionEndpointIDs.forEach(renderVarValueConnector); + } + // do the same for environment parent pointers + if (myViz.drawParentPointers) { + existingParentPointerConnectionEndpointIDs.forEach(renderParentPointerConnector); + parentPointerConnectionEndpointIDs.forEach(renderParentPointerConnector); + } + + /* + myViz.jsPlumbInstance.select().each(function(c) { + console.log('CONN:', c.sourceId, c.targetId); + }); + */ + //console.log('---', myViz.jsPlumbInstance.select().length, '---'); + + + function highlight_frame(frameID) { + myViz.jsPlumbInstance.select().each(function(c) { + // this is VERY VERY fragile code, since it assumes that going up + // FOUR layers of parent() calls will get you from the source end + // of the connector to the enclosing stack frame + var stackFrameDiv = c.source.parent().parent().parent().parent(); + + // if this connector starts in the selected stack frame ... + if (stackFrameDiv.attr('id') == frameID) { + // then HIGHLIGHT IT! + c.setPaintStyle({lineWidth:1, strokeStyle: connectorBaseColor}); + c.endpoints[0].setPaintStyle({fillStyle: connectorBaseColor}); + //c.endpoints[1].setVisible(false, true, true); // JUST set right endpoint to be invisible + + $(c.canvas).css("z-index", 1000); // ... and move it to the VERY FRONT + } + // for heap->heap connectors + else if (heapConnectionEndpointIDs.has(c.endpoints[0].elementId)) { + // NOP since it's already the color and style we set by default + } + else { + // else unhighlight it + c.setPaintStyle({lineWidth:1, strokeStyle: connectorInactiveColor}); + c.endpoints[0].setPaintStyle({fillStyle: connectorInactiveColor}); + //c.endpoints[1].setVisible(false, true, true); // JUST set right endpoint to be invisible + + $(c.canvas).css("z-index", 0); + } + }); + + + // clear everything, then just activate this one ... + myViz.domRoot.find(".stackFrame").removeClass("highlightedStackFrame"); + myViz.domRoot.find('#' + frameID).addClass("highlightedStackFrame"); + } + + + // highlight the top-most non-zombie stack frame or, if not available, globals + var frame_already_highlighted = false; + $.each(curEntry.stack_to_render, function(i, e) { + if (e.is_highlighted) { + highlight_frame(myViz.generateID('stack' + i)); + frame_already_highlighted = true; + } + }); + + if (!frame_already_highlighted) { + highlight_frame(myViz.generateID('globals')); + } + +} + + + +ExecutionVisualizer.prototype.redrawConnectors = function() { + this.jsPlumbInstance.repaintEverything(); +} + + +// Utilities + + +/* colors - see pytutor.css for more colors */ + +var highlightedLineColor = '#e4faeb'; +var highlightedLineBorderColor = '#005583'; + +var highlightedLineLighterColor = '#e8fff0'; + +var funcCallLineColor = '#a2eebd'; + +var brightRed = '#e93f34'; + +var connectorBaseColor = '#005583'; +var connectorHighlightColor = brightRed; +var connectorInactiveColor = '#cccccc'; + +var errorColor = brightRed; + +var breakpointColor = brightRed; +var hoverBreakpointColor = connectorBaseColor; + + +// Unicode arrow types: '\u21d2', '\u21f0', '\u2907' +var darkArrowColor = brightRed; +var lightArrowColor = '#c9e6ca'; + + +function assert(cond) { + if (!cond) { + alert("Assertion Failure (see console log for backtrace)"); + throw 'Assertion Failure'; + } +} + +// taken from http://www.toao.net/32-my-htmlspecialchars-function-for-javascript +function htmlspecialchars(str) { + if (typeof(str) == "string") { + str = str.replace(/&/g, "&"); /* must do & first */ + + // ignore these for now ... + //str = str.replace(/"/g, """); + //str = str.replace(/'/g, "'"); + + str = str.replace(//g, ">"); + + // replace spaces: + str = str.replace(/ /g, " "); + + // replace tab as four spaces: + str = str.replace(/\t/g, "    "); + } + return str; +} + + +// same as htmlspecialchars except don't worry about expanding spaces or +// tabs since we want proper word wrapping in divs. +function htmlsanitize(str) { + if (typeof(str) == "string") { + str = str.replace(/&/g, "&"); /* must do & first */ + + str = str.replace(//g, ">"); + } + return str; +} + + +String.prototype.rtrim = function() { + return this.replace(/\s*$/g, ""); +} + + +// make sure varname doesn't contain any weird +// characters that are illegal for CSS ID's ... +// +// I know for a fact that iterator tmp variables named '_[1]' +// are NOT legal names for CSS ID's. +// I also threw in '{', '}', '(', ')', '<', '>' as illegal characters. +// +// also some variable names are like '.0' (for generator expressions), +// and '.' seems to be illegal. +// TODO: what other characters are illegal??? +var lbRE = new RegExp('\\[|{|\\(|<', 'g'); +var rbRE = new RegExp('\\]|}|\\)|>', 'g'); +function varnameToCssID(varname) { + return varname.replace(lbRE, 'LeftB_').replace(rbRE, '_RightB').replace('.', '_DOT_'); +} + + +// compare two JSON-encoded compound objects for structural equivalence: +function structurallyEquivalent(obj1, obj2) { + // punt if either isn't a compound type + if (isPrimitiveType(obj1) || isPrimitiveType(obj2)) { + return false; + } + + // must be the same compound type + if (obj1[0] != obj2[0]) { + return false; + } + + // must have the same number of elements or fields + if (obj1.length != obj2.length) { + return false; + } + + // for a list or tuple, same size (e.g., a cons cell is a list/tuple of size 2) + if (obj1[0] == 'LIST' || obj1[0] == 'TUPLE') { + return true; + } + else { + var startingInd = -1; + + if (obj1[0] == 'DICT') { + startingInd = 2; + } + else if (obj1[0] == 'INSTANCE') { + startingInd = 3; + } + else { + return false; // punt on all other types + } + + var obj1fields = d3.map(); + + // for a dict or object instance, same names of fields (ordering doesn't matter) + for (var i = startingInd; i < obj1.length; i++) { + obj1fields.set(obj1[i][0], 1); // use as a set + } + + for (var i = startingInd; i < obj2.length; i++) { + if (!obj1fields.has(obj2[i][0])) { + return false; + } + } + + return true; + } +} + + +function isPrimitiveType(obj) { + // null is a primitive + if (obj == null) { + return true; + } + + if (typeof obj == "object") { + // kludge: only 'SPECIAL_FLOAT' objects count as primitives + return (obj[0] == 'SPECIAL_FLOAT'); + } + else { + // non-objects are primitives + return true; + } +} + +function getRefID(obj) { + assert(obj[0] == 'REF'); + return obj[1]; +} + + +// Annotation bubbles + +var qtipShared = { + show: { + ready: true, // show on document.ready instead of on mouseenter + delay: 0, + event: null, + effect: function() {$(this).show();}, // don't do any fancy fading because it screws up with scrolling + }, + hide: { + fixed: true, + event: null, + effect: function() {$(this).hide();}, // don't do any fancy fading because it screws up with scrolling + }, + style: { + classes: 'ui-tooltip-pgbootstrap', // my own customized version of the bootstrap style + }, +}; + + +// a speech bubble annotation to attach to: +// 'codeline' - a line of code +// 'frame' - a stack frame +// 'variable' - a variable within a stack frame +// 'object' - an object on the heap +// (as determined by the 'type' param) +// +// domID is the ID of the element to attach to (without the leading '#' sign) +function AnnotationBubble(parentViz, type, domID) { + this.parentViz = parentViz; + + this.domID = domID; + this.hashID = '#' + domID; + + this.type = type; + + if (type == 'codeline') { + this.my = 'left center'; + this.at = 'right center'; + } + else if (type == 'frame') { + this.my = 'right center'; + this.at = 'left center'; + } + else if (type == 'variable') { + this.my = 'right center'; + this.at = 'left center'; + } + else if (type == 'object') { + this.my = 'bottom left'; + this.at = 'top center'; + } + else { + assert(false); + } + + // possible states: + // 'invisible' + // 'edit' + // 'view' + // 'minimized' + // 'stub' + this.state = 'invisible'; + + this.text = ''; // the actual contents of the annotation bubble + + this.qtipHidden = false; // is there a qtip object present but hidden? (TODO: kinda confusing) +} + +AnnotationBubble.prototype.showStub = function() { + assert(this.state == 'invisible' || this.state == 'edit'); + assert(this.text == ''); + + var myBubble = this; // to avoid name clashes with 'this' in inner scopes + + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: ' ', + id: this.domID, + position: { + my: this.my, + at: this.at, + adjust: { + x: (myBubble.type == 'codeline' ? -6 : 0), // shift codeline tips over a bit for aesthetics + }, + effect: null, // disable all cutesy animations + }, + style: { + classes: 'ui-tooltip-pgbootstrap ui-tooltip-pgbootstrap-stub' + } + })); + + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + myBubble.showEditor(); + }); + + this.state = 'stub'; +} + +AnnotationBubble.prototype.showEditor = function() { + assert(this.state == 'stub' || this.state == 'view' || this.state == 'minimized'); + + var myBubble = this; // to avoid name clashes with 'this' in inner scopes + + var ta = ''; + + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: ta, + id: this.domID, + position: { + my: this.my, + at: this.at, + adjust: { + x: (myBubble.type == 'codeline' ? -6 : 0), // shift codeline tips over a bit for aesthetics + }, + effect: null, // disable all cutesy animations + } + })); + + + $(this.qTipContentID()).find('textarea.bubbleInputText') + // set handler when the textarea loses focus + .blur(function() { + myBubble.text = $(this).val().trim(); // strip all leading and trailing spaces + + if (myBubble.text) { + myBubble.showViewer(); + } + else { + myBubble.showStub(); + } + }) + .focus(); // grab focus so that the user can start typing right away! + + this.state = 'edit'; +} + + +AnnotationBubble.prototype.bindViewerClickHandler = function() { + var myBubble = this; + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + if (myBubble.parentViz.editAnnotationMode) { + myBubble.showEditor(); + } + else { + myBubble.minimizeViewer(); + } + }); +} + +AnnotationBubble.prototype.showViewer = function() { + assert(this.state == 'edit' || this.state == 'invisible'); + assert(this.text); // must be non-empty! + + var myBubble = this; + // destroy then create a new tip: + this.destroyQTip(); + $(this.hashID).qtip($.extend({}, qtipShared, { + content: htmlsanitize(this.text), // help prevent HTML/JS injection attacks + id: this.domID, + position: { + my: this.my, + at: this.at, + adjust: { + x: (myBubble.type == 'codeline' ? -6 : 0), // shift codeline tips over a bit for aesthetics + }, + effect: null, // disable all cutesy animations + } + })); + + this.bindViewerClickHandler(); + this.state = 'view'; +} + + +AnnotationBubble.prototype.minimizeViewer = function() { + assert(this.state == 'view'); + + var myBubble = this; + + $(this.hashID).qtip('option', 'content.text', ' '); //hack to "minimize" its size + + $(this.qTipID()) + .unbind('click') // unbind all old handlers + .click(function() { + if (myBubble.parentViz.editAnnotationMode) { + myBubble.showEditor(); + } + else { + myBubble.restoreViewer(); + } + }); + + this.state = 'minimized'; +} + +AnnotationBubble.prototype.restoreViewer = function() { + assert(this.state == 'minimized'); + $(this.hashID).qtip('option', 'content.text', htmlsanitize(this.text)); // help prevent HTML/JS injection attacks + this.bindViewerClickHandler(); + this.state = 'view'; +} + +// NB: actually DESTROYS the QTip object +AnnotationBubble.prototype.makeInvisible = function() { + assert(this.state == 'stub' || this.state == 'edit'); + this.destroyQTip(); + this.state = 'invisible'; +} + + +AnnotationBubble.prototype.destroyQTip = function() { + $(this.hashID).qtip('destroy'); +} + +AnnotationBubble.prototype.qTipContentID = function() { + return '#ui-tooltip-' + this.domID + '-content'; +} + +AnnotationBubble.prototype.qTipID = function() { + return '#ui-tooltip-' + this.domID; +} + + +AnnotationBubble.prototype.enterEditMode = function() { + assert(this.parentViz.editAnnotationMode); + if (this.state == 'invisible') { + this.showStub(); + + if (this.type == 'codeline') { + this.redrawCodelineBubble(); + } + } +} + +AnnotationBubble.prototype.enterViewMode = function() { + assert(!this.parentViz.editAnnotationMode); + if (this.state == 'stub') { + this.makeInvisible(); + } + else if (this.state == 'edit') { + this.text = $(this.qTipContentID()).find('textarea.bubbleInputText').val().trim(); // strip all leading and trailing spaces + + if (this.text) { + this.showViewer(); + + if (this.type == 'codeline') { + this.redrawCodelineBubble(); + } + } + else { + this.makeInvisible(); + } + } + else if (this.state == 'invisible') { + // this happens when, say, you first enter View Mode + if (this.text) { + this.showViewer(); + + if (this.type == 'codeline') { + this.redrawCodelineBubble(); + } + } + } +} + +AnnotationBubble.prototype.preseedText = function(txt) { + assert(this.state == 'invisible'); + this.text = txt; +} + +AnnotationBubble.prototype.redrawCodelineBubble = function() { + assert(this.type == 'codeline'); + + if (isOutputLineVisibleForBubbles(this.domID)) { + if (this.qtipHidden) { + $(this.hashID).qtip('show'); + } + else { + $(this.hashID).qtip('reposition'); + } + + this.qtipHidden = false; + } + else { + $(this.hashID).qtip('hide'); + this.qtipHidden = true; + } +} + +AnnotationBubble.prototype.redrawBubble = function() { + $(this.hashID).qtip('reposition'); +} + + +// NB: copy-and-paste from isOutputLineVisible with some minor tweaks +function isOutputLineVisibleForBubbles(lineDivID) { + var pcod = $('#pyCodeOutputDiv'); + + var lineNoTd = $('#' + lineDivID); + var LO = lineNoTd.offset().top; + + var PO = pcod.offset().top; + var ST = pcod.scrollTop(); + var H = pcod.height(); + + // add a few pixels of fudge factor on the bottom end due to bottom scrollbar + return (PO <= LO) && (LO < (PO + H - 25)); +} + + +// popup question dialog code from Brad Miller + +// inputId is the ID of the input element +// divId is the div that containsthe visualizer +// answer is a dotted form of an attribute that lives in the curEntry of the trace +// So if we want to ask for the value of a global variable we would say 'globals.a' +// this allows us do do curTrace[i].globals.a But we do it in the loop below using the +// [] operator. +function traceQCheckMe(inputId, divId, answer) { + var vis = $("#"+divId).data("vis") + var i = vis.curInstr + var curEntry = vis.curTrace[i+1]; + var ans = $('#'+inputId).val() + var attrs = answer.split(".") + var correctAns = curEntry; + for (j in attrs) { + correctAns = correctAns[attrs[j]] + } + feedbackElement = $("#" + divId + "_feedbacktext") + if (ans.length > 0 && ans == correctAns) { + feedbackElement.html('Correct') + } else { + feedbackElement.html(vis.curTrace[i].question.feedback) + } + +} + +function closeModal(divId) { + $.modal.close() + $("#"+divId).data("vis").stepForward(); +} diff --git a/v3/lesson.html b/v3/lesson.html new file mode 100644 index 000000000..418977396 --- /dev/null +++ b/v3/lesson.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      + +
      +
      + +
      + + + + diff --git a/v3/lessons/aliasing.txt b/v3/lessons/aliasing.txt new file mode 100644 index 000000000..ba4f8b230 --- /dev/null +++ b/v3/lessons/aliasing.txt @@ -0,0 +1,10 @@ +x = [1, 2, 3, 4, 5] +y = x +z = [1, 2, 3, 4, 5] +x.append(6) +====== +{ + "1": "execution point one", + "2": "execution point two", + "4": "execution point four" +} diff --git a/v3/lessons/dive-into-python-311.txt b/v3/lessons/dive-into-python-311.txt new file mode 100644 index 000000000..53a20d0a1 --- /dev/null +++ b/v3/lessons/dive-into-python-311.txt @@ -0,0 +1,38 @@ +li = ['a', 'b', 'mp', 'z', 'e'] +slice1 = li[1:3] +slice2 = li[1:-1] +slice3 = li[0:3] +li.append("new") +li.insert(2, "new") +li.extend(["two", "elements"]) +li.remove("z") +li.remove("new") +li.remove("new") +li.remove("c") +====== +{ + "title": "Basic List Operations", + + "description": "This lesson was derived from Section 3.2 of Dive Into Python.", + + "1": "First, you define a list of five elements. Note that after you execute this line, the elements retain their original order. This is not an accident. A list is an ordered set of elements enclosed in square brackets.", + + "2": "You can get a subset of a list, called a \"slice\", by specifying two indices. The return value is a new list containing all the elements of the list, in order, starting with the first slice index (in this case li[1]), up to but not including the second slice index (in this case li[3]).", + + "3": "Slicing works if one or both of the slice indices is negative. If it helps, you can think of it this way: reading the list from left to right, the first slice index specifies the first element you want, and the second slice index specifies the first element you don't want. The return value is everything in between.", + + "4": "Lists are zero-based, so li[0:3] returns the first three elements of the list, starting at li[0], up to but not including li[3].", + + "5": "append adds a single element to the end of the list.", + + "6": "insert inserts a single element into a list. The numeric argument is the index of the first element that gets bumped out of position. Note that list elements do not need to be unique; there will now be two separate elements with the value 'new', li[2] and li[6].", + + "7": "extend concatenates lists. Note that you do not call extend with multiple arguments; you call it with one argument, a list. In this case, that list has two elements.", + + "8": "remove removes the first occurrence of a value from a list.", + + "9": "remove removes only the first occurrence of a value. In this case, 'new' appears twice in the list, but li.remove(\"new\") will remove only the first occurrence.", + + "11": "If the value is not found in the list, Python raises an exception. This mirrors the behavior of the index method." + +} diff --git a/v3/lessons/for-else.txt b/v3/lessons/for-else.txt new file mode 100644 index 000000000..08502b199 --- /dev/null +++ b/v3/lessons/for-else.txt @@ -0,0 +1,34 @@ +primes = [] +for n in range(2, 10): + x_range = range(2, n) + for x in x_range: + if n % x == 0: + break + else: + # loop fell through without finding a factor + primes.append(n) +====== +{ + "title": "For-Else Construct", + + "description": "Loop statements may have an else clause; it is executed when the loop terminates through exhaustion of the list (with for) or when the condition becomes false (with while), but not when the loop is terminated by a break statement. This is exemplified by the following loop, which searches for prime numbers. (Yes, this is the correct code. Look closely: the else clause belongs to the for loop, not the if statement.) [Source: Python.org tutorial]", + + "1": "First initialize a list to hold the prime numbers found between 2 and 9 (inclusive).", + + "4": "Note that this inner for loop has an associated else clause on line 7.", + + "5": "The first iteration of this for loop immediately exits and jumps to the else clause because range(2, 2) is empty.", + + "7": "Test whether n is divisible by x to determine primality ...", + + "11": "Since the loop exits again without running a break statement, the else clause is executed.", + + "16": "4 is divisible by 2, so it's not prime. The inner for loop will exit by running the break statement, so its associated else clause will not be executed.", + + "19": "The program now tests whether 5 is divisible by 2, 3, or 4.", + + "26": "Since 5 is prime, the inner for again exits normally, so its associated else clause will be executed.", + + "59": "When the program terminates, primes contains the list of primes found between 2 and 9 (inclusive)" + +} diff --git a/v3/lessons/varargs.txt b/v3/lessons/varargs.txt new file mode 100644 index 000000000..f2508a89c --- /dev/null +++ b/v3/lessons/varargs.txt @@ -0,0 +1,35 @@ +def f1(a, b, *rest): + pass + +f1(1, 2) +f1(1, 2, 3, 4, 5, 6, 7) + +def f2(a, b, **kwrest): + pass + +f2(1, 2, name='Bob', age=38) + +def f3(a, b, *rest, **kwrest): + pass + +f3(1, 2, 3, 4, name='Bob', age=38) +====== +{ + "title": "Optional Function Arguments", + + "description": "Prepending certain argument names with * and ** allows Python functions to accept an arbitrary number of optional arguments.", + + "1": "f1 is declared with two mandatory arguments (a and b) and an optional *rest argument.", + + "3": "When you call f1 with only the two mandatory arguments, rest is an empty tuple.", + + "7": "When you call f1 with additional arguments, rest is a tuple that holds the contents of everything after the two mandatory arguments.", + + "10": "f2 is declared with two mandatory arguments and an optional **kwrest argument.", + + "12": "When you call f2 with additional keyword arguments (e.g., name='Bob', age=38), kwrest becomes a dict bound to their respective keys and values.", + + "15": "You can combine up to one * and one ** argument in a function definition.", + + "17": "Now any extra regular arguments (here, the numbers 3 and 4) are found in the *rest tuple, and any extra keyword arguments are in the **kwrest dict." +} diff --git a/v3/logger/gae_logger.py b/v3/logger/gae_logger.py new file mode 100644 index 000000000..77b59c172 --- /dev/null +++ b/v3/logger/gae_logger.py @@ -0,0 +1,22 @@ +# User activity logger to be deployed on Google App Engine datastore + +import datetime +from google.appengine.ext import db + + +class VisualizerRequest(db.Model): + user_script = db.TextProperty(required=True) # LONG string + cumulative_mode = db.BooleanProperty(requred=True) + user_ip_addr = db.StringProperty(required=True) + http_referer = db.StringProperty(required=True) + app_id = db.StringProperty(required=True) + request_timestamp = db.DateTimeProperty(auto_now_add=True) # always set timestamp to NOW! + +x = VisualizerRequest(user_script=db.Text(u'print "hello world"\n', encoding='utf_8'), + cumulative_mode=True + user_ip_addr='18.239.4.100', + http_referer='http://www.google.com/?magic-search', + app_id='pgbovine test') + +x.put() + diff --git a/v3/make_visualizations.py b/v3/make_visualizations.py new file mode 100644 index 000000000..96d66e14f --- /dev/null +++ b/v3/make_visualizations.py @@ -0,0 +1,423 @@ +# 'Make' support for Online Python Tutor +# +# Copyright (C) 2013 Peter Robinson (pjr@itee.uq.edu.au) +# +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +""" +This program is a 'make' program for embedding traces in web pages. + +The process is driven by a .json file (the 'Makefile') + +Assuming the file viz_makefile.json is in the cwd which will typically +be where the web pages and python code to be visualized reside, +and $OPT is the path to the installation of OPT +(including make_visualizations.py) then + +python $OPT/make_visualizations.py viz_makefile.json + +will generate all the .js traces and update the web pages as specified +in viz_makefile.json. + +python $OPT/make_visualizations.py viz_makefile.json eg1.html + +will do the same thing but only for the given page(s). + +Here is an example of the 'Makefile' viz_makefile.json +---------------------------- +{ +"visualizer_url": + "http://path_to_local_visualizer/visualize.html", + + +"default_viz_config": + { + "embeddedMode": true, + "verticalStack": true + }, + +"eg1.html": + [ + # hash to end of line is a comment + "js/t1.js", + { + "python_scripts/t1a.py": {} + "python_scripts/t1b.py": {"embeddedMode": false} + } + ] +"eg2.html": + [ + "js/t2.js", + { + # verticalStack is removed from the params below + "python_scripts/t2.py": {"verticalStack": ""} + } + ] +} +---------------------------- +For each .html file the first argument is the .js file where the traces will go +and the second argument is a dictionary whose keys are the python scripts +to be used to generate the traces. + +If "visualizer_url" is not supplied it defaults to + "http://pythontutor.com/visualize.html" + +If "default_viz_config" is not supplied it defaults to + {'heightChangeCallback': 'redrawAllVisualizerArrows', + 'editCodeBaseURL': viz_url} + +where viz_url is the value associated with the "visualizer_url" key. +Note: for this version heightChangeCallback is hard-wired to be +redrawAllVisualizerArrows. + +The dictionary associated with a python script overrides the +"default_viz_config" dictionary. +In other words, if all visualizations behave the same way then the dictionary +associated with a python script can be set to {} and so will end up being the +(supplied) default. + +""" + +import subprocess +import os +import re +import json +from optparse import OptionParser + +# The OPT program for generating traces +GEN_JSON = "generate_json_trace.py" + +# The command used to generate traces {0} will be the full path to GEN_JSON +# !! WARNING !! python below might need to be modified to point at the +# correct version +COMMAND = "python {0} --create_jsvar={1}Trace {2}" + +# The possible keys for configuring the visualization and their types +# At the moment changing callbacks are not supported - +# 'heightChangeCallback' is hard-wired in +VIZ_CONFIG_TYPES = {#'heightChangeCallback': unicode, + #'updateOutputCallback': unicode, + #'executeCodeWithRawInputFunc': unicode, + 'embeddedMode': bool, + 'startingInstruction': int, + 'verticalStack': bool, + 'jumpToEnd': bool, + 'codeDivWidth': int, + 'codeDivHeight': int, + 'hideOutput' : bool, + 'editCodeBaseURL' : unicode, + 'allowEditAnnotations' : bool, + 'disableHeapNesting' : bool, + 'drawParentPointer' : bool, + 'textualMemoryLabels' : bool, + 'showOnlyOutputs' : bool, + } + +CALLBACK_PATTERN_REPL = [ + (r'"heightChangeCallback"\s*:\s*"([^"]*)"', r'"heightChangeCallback":\1'), + (r'"dateOutputCallback"\s*:\s*"([^"]*)"', r'"OutputCallback":\1'), + (r'"executeCodeWithRawInputFunc"\s*:\s*"([^"]*)"', + r'"executeCodeWithRawInputFunc":\1') + ] + +# visualize.html in OPT home +DEFALUT_VIZ_URL = 'http://pythontutor.com/visualize.html' + +# The global default visualization configuration +# Note: heightChangeCallback is hard-wired to be redrawAllVisualizerArrows +DEFAULT_VIZ_CONFIG = {'heightChangeCallback': 'redrawAllVisualizerArrows'} + + +# The string used to generate js code for ExecutionVisualizer +VIZ_VAR = \ +"""var {0}Visualizer = + new ExecutionVisualizer('{0}Div', {0}Trace, + {1});""" + +# The following is used to inject the dependencies and other info +# into the web pages. If this info is already there then it will be replaced. +# If your file already has this info in but does not have the +# PY_TUTOR_END footer then manually remove this info. +# This information is based on the example from 'http://pythontutor.com' +PY_TUTOR_START = '' +PY_TUTOR_END = '' +PY_TUTOR_DEPEND = PY_TUTOR_START + \ +""" + + + + + + + + + + + + + + + + + + + +""" + PY_TUTOR_END + +# A regular expression used to remove the old info +PY_TUTOR_RE = PY_TUTOR_START + '.*' + PY_TUTOR_END + +# Used to inject a comment along with the dependency information so that +# you can cut and paste into the appropriate place in to the page body +DIV_TEXT = '
      ' + +# The ready function to go at the end ot the generated .js file +DOCUMENT_READY_TEXT = \ +""" +$(document).ready(function() {{ + +{0} + + function redrawAllVisualizerArrows() {{ + {1} + }} +$(window).resize(redrawAllVisualizerArrows); +}}); +""" + +REDRAW_CONNECTORS_TEXT = "if ({0}Visualizer) {0}Visualizer.redrawConnectors();" + +COMMENT_RE = r'#.*$' + +def check_viz_config(parent, config): + """Check that config is a valid visualization configuration""" + isOK = True + if type(config) != dict: + print "In {0}, {1} is not a dictionary".format(parent,config) + return False + for key, value in config.iteritems(): + config_field_type = VIZ_CONFIG_TYPES.get(key) + if config_field_type is None: + print "Unknown visualizer key:", key + isOK = False + elif value != '' and type(value) != config_field_type: + print "The visualizer configure entry {0}:{1} has the wrong type".format(key,value) + isOK = False + return isOK + +def check_html_build(html, html_build_info): + """Check that the build information for this html file is valid.""" + if len(html_build_info) != 2: + print "The build list for {0} should have 2 entries".format(html) + return False + if type(html_build_info[0]) != unicode or \ + not html_build_info[0].endswith('.js'): + print "The first argument of build list for {0} should be a .js file".format(html) + if type(html_build_info[1]) != dict: + print "The html build information must be a dictionary" + return False + + isOK = True + for key, value in html_build_info[1].iteritems(): + if type(key) != unicode or not key.endswith('.py'): + print "The key {0} is not a .py file".format(key) + isOK = False + isOK = check_viz_config(html_build_info[1], value) and isOK + return isOK + + +def check_build_info(build_info): + """Check that the json info is a valid 'Makefile'""" + isOK = True + if type(build_info) != dict: + print "The build information must be a dictionary" + return False + for key, value in build_info.iteritems(): + if key == 'default_viz_config': + isOK = check_viz_config(build_info, value) and isOK + elif key == 'visualizer_url': + if type(value) != unicode: + print 'The visualizer url must be a string' + isOK = False + elif key.endswith('.html'): + isOK = check_html_build(key, value) and isOK + else: + print 'Unknown key:', key + isOK = False + return isOK + +def update_dict(d, defaultd): + """Update d with key,value pairs in defaultd if the key is not in d. + If the value is the empty string then that entry is removed from + the dictionary""" + for key, value in defaultd.iteritems(): + if key not in d: + d[key] = value + elif value == '': + d.pop(key) + +def get_build_info(json_file): + """Return the build information in json_file. + Check if file is valid. + """ + try: + fp = open(json_file, 'rU') + text = fp.read() + fp.close() + text = re.sub(COMMENT_RE, '', text, flags=re.M) + build_info = json.loads(text) + except Exception as e: + print "Error in {0}:\n{1}".format(json_file, str(e)) + return None + if not check_build_info(build_info): + return None + # if necessary add a value for "visualizer_url" + if "visualizer_url" not in build_info: + build_info["visualizer_url"] = DEFALUT_VIZ_URL + # merge DEFAULT_VIZ_CONFIG with the supplied "default_viz_config" + config = DEFAULT_VIZ_CONFIG + config["editCodeBaseURL"] = build_info["visualizer_url"] + config.update(build_info.get("default_viz_config", {})) + build_info["default_viz_config"] = config + # update all the + for key, value in build_info.iteritems(): + if key.endswith('.html'): + for py_key, py_dict in value[1].iteritems(): + update_dict(py_dict, build_info.get("default_viz_config", {})) + return build_info + + +def get_vizname_root(py_file): + """Return the name to be used as the prefix for Trace, Visualizer etc""" + return os.path.basename(py_file).replace('.', '_') + + + +def run_command(gen_trace, py_file): + """ Return the output of generate_json_trace.py on py_file""" + command = COMMAND.format(gen_trace, get_vizname_root(py_file), py_file) + return subprocess.check_output(command,bufsize=1, + close_fds=True, + shell=True) + +def make_viz(build_info, html_files): + """Build the visualizations specified in build_info and html_files""" + abspath = os.path.abspath(__file__) + dname = os.path.dirname(abspath) + prog = os.path.join(dname, GEN_JSON) + # if no html files are supplied 'make' all of them + if not html_files: + html_files = [h for h in build_info if h.endswith('.html')] + + for html in html_files: + if html in build_info: + make_html_viz(prog, html, build_info[html]) + else: + print "{0} is not in the json file".format(html) + +def get_viz_config(conf): + """Get the configuration params for visualization.""" + text = json.dumps(conf) + # The callbacks are strings in conf and need to be turned into + # function relreences by removing the quotes + for patt, repl in CALLBACK_PATTERN_REPL: + text = re.sub(patt, repl, text) + return text + +def make_html_viz(prog, html_file, html_info): + """'Make' the visualizations for html_file""" + + js_out, py_dict = html_info + + # all_traces is a string containing all the js trace datastructures + # for all the supplied .py files for html_file + try: + all_traces = '\n'.join(run_command(prog, py) for py in py_dict) + except Exception as e: + print str(e) + return + + # all_viz is the string containing the js code for creating the + # required instances of ExecutionVisualizer for all the .py files + # the root of the .py file is used as the root names in ExecutionVisualizer + all_viz = '\n'.join(VIZ_VAR.format(get_vizname_root(py), + get_viz_config(pyd)) \ + for py,pyd in py_dict.iteritems()) + + all_redraws = ' \n'.join(REDRAW_CONNECTORS_TEXT.format(get_vizname_root(py)) for py, pyd in py_dict.iteritems() if 'redrawAllVisualizerArrows' in pyd.values()) + + ready_function = DOCUMENT_READY_TEXT.format(all_viz, all_redraws) + + # all_js is the string of all the require js code + all_js = all_traces + '\n' + ready_function + '\n' + + fd = open(js_out, 'w') + fd.write(all_js) + fd.close() + + # Update html_file + try: + fd = open(html_file, 'rU') + html_text = fd.read() + fd.close() + except Exception as e: + print str(e) + return + # strip out the old OPT dependency info + html_text = re.sub(PY_TUTOR_RE, '', html_text, flags=re.M | re.S) + end_head_pos = html_text.find('\n') + if end_head_pos == -1: + print "Could not find '\n' in {0}".format(html_file) + return + + # all_divs is the string of all div entries to embed in the html + # this is added to the header comments for easy cut and pasting + # to the correct location in the document. + all_divs = '\n'.join(DIV_TEXT.format(get_vizname_root(py)) for py in py_dict) + # add the updated dependency info just before + html_text = html_text[:end_head_pos] +\ + PY_TUTOR_DEPEND.format(js_out, all_divs) + \ + html_text[end_head_pos:] + fd = open(html_file, 'w') + fd.write(html_text) + fd.close() + + +def main(args): + build_info = get_build_info(args[0]) + if build_info is None: + print "Make aborted" + else: + make_viz(build_info, args[1:]) + + +if __name__ == '__main__': + usage = "usage: %prog json_file [py_files]" + parser = OptionParser(usage = usage) + options,args = parser.parse_args() + if len(args) == 0: + print "Missing arguments - try python make_visualizations.py -h" + else: + main(args) diff --git a/v3/matrix.py b/v3/matrix.py new file mode 100644 index 000000000..3edeaaee5 --- /dev/null +++ b/v3/matrix.py @@ -0,0 +1,151 @@ +# m a t r i x . p y +# +# Support for 2d matrix that renders to an HTML table +# +# Chris Meyers. 09/25/2013 +# + +dftTableAttr = 'cellspacing="0" cellpadding="10"' + +class Matrix : + def __init__ (self, nrows=1, ncols=1, data=None, + dftFormat="", dftStyle="", title="", + tableAttr=dftTableAttr, tableHeaders=None, + Expand=True) : + self.nrows = nrows + self.ncols = ncols + self.values = {} + self.expanded = Expand + if Expand : + # get attributes only on the main Matrix + self.dftFormat = dftFormat + self.dftStyle = dftStyle + self.title = title + self.tableAttr = tableAttr + self.tableHeaders = tableHeaders + self.format = Matrix(nrows, ncols, Expand=False) + self.style = Matrix(nrows, ncols, Expand=False) + if data : + if type(data) == type({}) : data=dictToLol(data) + if type(data) == type([]) : + self.populate(data) + + def __getitem__(self, coords) : + row, col = coords + return self.values.get((row,col)) + + def __setitem__(self, coords, value) : + row, col = coords + self.values[(row,col)] = value + self.nrows = max(self.nrows,row+1) + self.ncols = max(self.ncols,col+1) + if self.expanded : + self.format.nrows = self.nrows + self.format.ncols = self.ncols + self.style.nrows = self.nrows + self.style.ncols = self.ncols + return value + +#=========================================== + + def setrowVals(self, row, values) : + "set each column to a seperate value" + col = 0 + for col in range(len(values)) : + self.__setitem__((row,col),values[col]) + col += 1 + + def setrowVal(self, row, value) : + "set all columns to the same value" + col = 0 + while col < self.ncols : + self.__setitem__((row,col),value) + col += 1 + + def getrow (self, row) : + vals = [] + for c in range(self.ncols) : + vals.append(self.__getitem__( (row,c) )) + return vals + +#=========================================== + + def setcolVals(self, col, values) : + "set each row to a seperate value" + row = 0 + for row in range(len(values)) : + self.__setitem__((row,col),values[row]) + row += 1 + + def setcolVal(self, col, value) : + "set all rowumns to the same value" + row = 0 + while row < self.nrows : + self.__setitem__((row,col),value) + row += 1 + + def getcol (self, col) : + vals = [] + for r in range(self.nrows) : + vals.append(self.__getitem__( (r,col) )) + return vals + +#=========================================== + + def populate(self, lists) : + "Fill self from a list of lists" + nRows = len(lists) + nCols = max([len(l) for l in lists]) + for row in range(len(lists)) : + vals = lists[row] + if type(vals) != list : vals = [vals] # make sing col + self.setrowVals(row, vals) + + def renderHtml(self,wrap=None) : + lins = ["","" % self.tableAttr] + if self.title : lins[0] = "
      %s
      " % self.title + headers = self.tableHeaders + if headers : + lins.append("") + for row in range(self.nrows) : + rowLin = [" "] + vals = self.getrow(row) + if self.format : formats = self.format.getrow(row) + else : formats = ['']*self.ncols + if self.style : styles = self.style.getrow(row) + else : styles = ['']*self.ncols + for c in range(self.ncols) : + val = vals[c]; style=styles[c]; format=formats[c] + if val == None : val = "" + if not format : format = self.dftFormat + if format : + if type(format)==type("") : val = format % val + else : val = format(val) + if not style : style = self.dftStyle + if style : cell = '' % (style,val) + else : cell = '' % val + if wrap and c>0 and c%wrap==0 : cell=""+cell + rowLin.append(cell) + rowLin.append("") + lins.append("".join(rowLin)) + lins.append("
      "+"".join(map(str,headers))+ + "
      %s%s
      ") + return "\n".join(lins) + + def __str__ (self) : + return "Matrix-%dx%d" % (self.nrows,self.ncols) + +#=========================================== + +typeSeq = (type([]), type((1,2))) + +def dictToLol(dic) : + "Convert dict to a list of lists" + keys = dic.keys(); keys.sort() + lists = [] + for key in keys : + val = dic[key] + if type(val) not in typeSeq : val = [val] + lists.append([key]+list(val)) + return lists + diff --git a/v3/opt-annotations.png b/v3/opt-annotations.png new file mode 100644 index 000000000..9fff3305d Binary files /dev/null and b/v3/opt-annotations.png differ diff --git a/v3/opt-ipy-server.py b/v3/opt-ipy-server.py new file mode 100755 index 000000000..957a58c86 --- /dev/null +++ b/v3/opt-ipy-server.py @@ -0,0 +1,105 @@ +# Adapted from https://github.com/facebook/tornado/tree/master/demos/websocket + +import logging +import tornado.ioloop +import tornado.options +import tornado.web +import tornado.websocket +import os.path + +from tornado.options import define, options + +import json + + +define("port", default=8888, help="run on the given port", type=int) + + +class Application(tornado.web.Application): + # singleton + current_full_trace = None + + def __init__(self): + handlers = [ + (r"/js/(.*)", + tornado.web.StaticFileHandler, + {"path": os.path.join(os.path.dirname(__file__), 'js/')}), + (r"/css/(.*)", + tornado.web.StaticFileHandler, + {"path": os.path.join(os.path.dirname(__file__), 'css/')}), + (r"/", MainHandler), + (r"/chatsocket", ChatSocketHandler), + # respond to HTTP POST requests: + (r"/wholetrace", WholeTraceHandler), + (r"/difftrace", DiffTraceHandler), + (r"/clear", ClearHandler), + ] + tornado.web.Application.__init__(self, handlers) + + +class MainHandler(tornado.web.RequestHandler): + def get(self): + self.render("opt-ipy.html") + + +class WholeTraceHandler(tornado.web.RequestHandler): + def post(self): + message = self.request.body + dat = json.loads(message) + Application.current_full_trace = dat + + js_msg=dict(payload=Application.current_full_trace, type='wholetrace') + ChatSocketHandler.send_updates(json.dumps(js_msg)) + + +class DiffTraceHandler(tornado.web.RequestHandler): + def post(self): + # TODO: implement me using, say, + # https://code.google.com/p/google-diff-match-patch/ + pass + + +class ClearHandler(tornado.web.RequestHandler): + def post(self): + Application.current_full_trace = None + js_msg=dict(type='clear') + ChatSocketHandler.send_updates(json.dumps(js_msg)) + + +class ChatSocketHandler(tornado.websocket.WebSocketHandler): + waiters = set() + + def allow_draft76(self): + # for iOS 5.0 Safari + return True + + def open(self): + ChatSocketHandler.waiters.add(self) + # when a new connection is made, send the entire trace to only + # THIS browser + if Application.current_full_trace: + js_msg=dict(payload=Application.current_full_trace, type='wholetrace') + self.write_message(json.dumps(js_msg)) + + def on_close(self): + ChatSocketHandler.waiters.remove(self) + + @classmethod + def send_updates(cls, chat): + #logging.info("sending message to %d waiters", len(cls.waiters)) + for waiter in cls.waiters: + try: + waiter.write_message(chat) + except: + logging.error("Error sending message", exc_info=True) + + +def main(): + tornado.options.parse_command_line() + app = Application() + app.listen(options.port) + tornado.ioloop.IOLoop.instance().start() + + +if __name__ == "__main__": + main() diff --git a/v3/opt-ipy.html b/v3/opt-ipy.html new file mode 100644 index 000000000..2444fb096 --- /dev/null +++ b/v3/opt-ipy.html @@ -0,0 +1,62 @@ + + + + + Online Python Tutor: interactive mode + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + diff --git a/v3/opt-ipy.py b/v3/opt-ipy.py new file mode 100644 index 000000000..d14e6f805 --- /dev/null +++ b/v3/opt-ipy.py @@ -0,0 +1,175 @@ +# Online Python Tutor extension for the IPython shell +# by Philip Guo (philip@pgbovine.net) +# August 2013 + +# When this extension is loaded, you can type code into the IPython +# prompt and visualize its execution in a web browser. +# +# This extension also defines a '%clear' magic command to clear the +# user's global environment and accompanying visualization. + +# One-minute video demo: +# http://www.youtube.com/watch?v=Q3oarDuZPL0 + +# Prerequisites: +# - IPython shell (http://ipython.org/, tested on 0.13.1 and 1.0.dev) +# - tornado Web server (http://www.tornadoweb.org/) +# +# One easy way to set up these prerequisites is by installing the +# free Enthought Python Distribution: +# https://www.enthought.com/products/epd/free/ + +# Instructions: +# +# 1. Start a local web server +# +# python opt-ipy-server.py +# +# 2. Load this URL in your browser: +# +# http://localhost:8888/ +# +# 3. Start the IPython shell in this directory by running: +# +# ipython +# +# 4. Load this extension by running: +# +# %load_ext opt-ipy +# +# At this point, as soon as you execute a Python statement in the +# IPython shell, it should immediately be visualized in your browser. + + +# If you're hosting the server remotely, then change this address: +SERVER_ADDR = "http://localhost:8888/" + +assert SERVER_ADDR[-1] == '/' + + +import os, sys, urllib2, json +import pg_logger + + +# Standardize display of floats to 3 significant figures +# +# Trick from: +# http://stackoverflow.com/questions/1447287/format-floats-with-standard-json-module +json.encoder.FLOAT_REPR = lambda f: ('%.3f' % f) + +#INDENT_LEVEL = 2 # human-readable +INDENT_LEVEL = None # compact + +# TODO: support incremental pushes to the OPT frontend for efficiency +# and better "snappiness" +# +# I think the easiest way to do diffs is to set INDENT_LEVEL = 2 above +# and then simply send the diff of the JSON string to the server. +# It's WAY TOO COMPLICATED to try implementing semantic diffs of the +# OPT trace ourselves, since there are too many corner cases. +# +# text diffs are an elegant solution :) +# +# https://code.google.com/p/google-diff-match-patch/ + + +class OptHistory(object): + def __init__(self): + self.executed_stmts = [] + + def pop_last(self): + self.executed_stmts.pop() + + def get_code(self): + return '\n'.join(self.executed_stmts) + + def run_str_and_broadcast(self, stmt_str): + ''' + Run stmt_str and transmit trace to server + ''' + self.executed_stmts.append(stmt_str) + + opt_trace = pg_logger.exec_script_str_local(self.get_code(), [], False, False, + lambda cod, trace: trace) + + last_evt = opt_trace[-1]['event'] + if last_evt == 'exception': + epic_fail = True + else: + assert last_evt == 'return' + epic_fail = False + + trace_dict = dict(code=self.get_code(), trace=opt_trace) + json_output = json.dumps(trace_dict, indent=INDENT_LEVEL) + + # if this statement ended in an exception, delete it from the + # history and pretend it never happened + if epic_fail: + self.pop_last() + + urllib2.urlopen(SERVER_ADDR + 'wholetrace', json_output) + + +# called right before a statement gets executed +def opt_pre_run_code_hook(self): + # when you run multiple statements on one line using a semicolon: + # e.g., "print x; print y", this function will fire multiple times. + # we want to avoid duplicates! + last_cmd = self.history_manager.input_hist_parsed[-1] + last_cmd_index = len(self.history_manager.input_hist_parsed) - 1 + + # also don't intercept special ipython commands + if 'get_ipython().' in last_cmd: + return + + if self.meta.last_cmd_index == last_cmd_index: + assert self.meta.last_cmd == last_cmd + return # punt!!! + + self.meta.last_cmd = last_cmd + self.meta.last_cmd_index = last_cmd_index + + self.meta.opt_history.run_str_and_broadcast(last_cmd) + + +# clear global namespace and reset history +def opt_clear(self, params): + ip = get_ipython() + + filtered_user_ns = set() + for k, v in ip.user_ns.iteritems(): + if k[0] == '_': + continue + if k in ('In', 'Out', 'help', 'quit', 'exit', 'get_ipython'): + continue + filtered_user_ns.add(k) + + for k in filtered_user_ns: + del ip.user_ns[k] + + ip.meta.opt_history = OptHistory() # just create a new one! + + urllib2.urlopen(SERVER_ADDR + 'clear', 'blub') # need a non-empty POST body + + +def load_ipython_extension(ipython): + # The `ipython` argument is the currently active `InteractiveShell` + # instance, which can be used in any way. This allows you to register + # new magics or aliases, for example. + + ipython.meta.opt_history = OptHistory() + + ipython.meta.last_cmd = None + ipython.meta.last_cmd_index = -1 # set to an impossible initial value + + # NB: spelling might be different in older IPython versions + ipython.set_hook('pre_run_code_hook', opt_pre_run_code_hook) + ipython.define_magic('clear', opt_clear) + + print "Online Python Tutor extension loaded!" + + +def unload_ipython_extension(ipython): + # If you want your extension to be unloadable, put that logic here. + pass + diff --git a/v3/opt-v3-cs61a-embed.png b/v3/opt-v3-cs61a-embed.png new file mode 100644 index 000000000..c0ffcbd54 Binary files /dev/null and b/v3/opt-v3-cs61a-embed.png differ diff --git a/v3/packages-src/GChartWrapper-0.9.tar.gz b/v3/packages-src/GChartWrapper-0.9.tar.gz new file mode 100644 index 000000000..1d0747391 Binary files /dev/null and b/v3/packages-src/GChartWrapper-0.9.tar.gz differ diff --git a/v3/pg_encoder.py b/v3/pg_encoder.py new file mode 100644 index 000000000..f3a767a67 --- /dev/null +++ b/v3/pg_encoder.py @@ -0,0 +1,316 @@ +# Online Python Tutor +# https://github.com/pgbovine/OnlinePythonTutor/ +# +# Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Thanks to John DeNero for making the encoder work on both Python 2 and 3 + + +# Given an arbitrary piece of Python data, encode it in such a manner +# that it can be later encoded into JSON. +# http://json.org/ +# +# We use this function to encode run-time traces of data structures +# to send to the front-end. +# +# Format: +# Primitives: +# * None, int, long, float, str, bool - unchanged +# (json.dumps encodes these fine verbatim, except for inf, -inf, and nan) +# +# exceptions: float('inf') -> ['SPECIAL_FLOAT', 'Infinity'] +# float('-inf') -> ['SPECIAL_FLOAT', '-Infinity'] +# float('nan') -> ['SPECIAL_FLOAT', 'NaN'] +# x == int(x) -> ['SPECIAL_FLOAT', '%.1f' % x] +# (this way, 3.0 prints as '3.0' and not as 3, which looks like an int) +# +# If render_heap_primitives is True, then primitive values are rendered +# on the heap as ['HEAP_PRIMITIVE', , ] +# +# (for SPECIAL_FLOAT values, is a list like ['SPECIAL_FLOAT', 'Infinity']) +# +# Compound objects: +# * list - ['LIST', elt1, elt2, elt3, ..., eltN] +# * tuple - ['TUPLE', elt1, elt2, elt3, ..., eltN] +# * set - ['SET', elt1, elt2, elt3, ..., eltN] +# * dict - ['DICT', [key1, value1], [key2, value2], ..., [keyN, valueN]] +# * instance - ['INSTANCE', class name, [attr1, value1], [attr2, value2], ..., [attrN, valueN]] +# * instance with __str__ defined - ['INSTANCE_PPRINT', class name, <__str__ value>] +# * class - ['CLASS', class name, [list of superclass names], [attr1, value1], [attr2, value2], ..., [attrN, valueN]] +# * function - ['FUNCTION', function name, parent frame ID (for nested functions)] +# * module - ['module', module name] +# * other - [, string representation of object] +# * compound object reference - ['REF', target object's unique_id] +# +# the unique_id is derived from id(), which allows us to capture aliasing + + +# number of significant digits for floats +FLOAT_PRECISION = 4 + + +import re, types +import sys +import math +typeRE = re.compile("") +classRE = re.compile("") + +import inspect + +# TODO: maybe use the 'six' library to smooth over Py2 and Py3 incompatibilities? +is_python3 = (sys.version_info[0] == 3) +if is_python3: + long = None # Avoid NameError when evaluating "long" + + +def is_class(dat): + """Return whether dat is a class.""" + if is_python3: + return isinstance(dat, type) + else: + return type(dat) in (types.ClassType, types.TypeType) + + +def is_instance(dat): + """Return whether dat is an instance of a class.""" + if is_python3: + return type(dat) not in PRIMITIVE_TYPES and \ + isinstance(type(dat), type) and \ + not isinstance(dat, type) + else: + # ugh, classRE match is a bit of a hack :( + return type(dat) == types.InstanceType or classRE.match(str(type(dat))) + + +def get_name(obj): + """Return the name of an object.""" + return obj.__name__ if hasattr(obj, '__name__') else get_name(type(obj)) + + +PRIMITIVE_TYPES = (int, long, float, str, bool, type(None)) + +def encode_primitive(dat): + if type(dat) is float: + if math.isinf(dat): + if dat > 0: + return ['SPECIAL_FLOAT', 'Infinity'] + else: + return ['SPECIAL_FLOAT', '-Infinity'] + elif math.isnan(dat): + return ['SPECIAL_FLOAT', 'NaN'] + else: + # render floats like 3.0 as '3.0' and not as 3 + if dat == int(dat): + return ['SPECIAL_FLOAT', '%.1f' % dat] + else: + return round(dat, FLOAT_PRECISION) + else: + # return all other primitives verbatim + return dat + + +# Note that this might BLOAT MEMORY CONSUMPTION since we're holding on +# to every reference ever created by the program without ever releasing +# anything! +class ObjectEncoder: + def __init__(self, render_heap_primitives): + # Key: canonicalized small ID + # Value: encoded (compound) heap object + self.encoded_heap_objects = {} + + self.render_heap_primitives = render_heap_primitives + + self.id_to_small_IDs = {} + self.cur_small_ID = 1 + + + def get_heap(self): + return self.encoded_heap_objects + + + def reset_heap(self): + # VERY IMPORTANT to reassign to an empty dict rather than just + # clearing the existing dict, since get_heap() could have been + # called earlier to return a reference to a previous heap state + self.encoded_heap_objects = {} + + def set_function_parent_frame_ID(self, ref_obj, enclosing_frame_id): + assert ref_obj[0] == 'REF' + func_obj = self.encoded_heap_objects[ref_obj[1]] + assert func_obj[0] == 'FUNCTION' + func_obj[-1] = enclosing_frame_id + + + # return either a primitive object or an object reference; + # and as a side effect, update encoded_heap_objects + def encode(self, dat, get_parent): + """Encode a data value DAT using the GET_PARENT function for parent ids.""" + # primitive type + if not self.render_heap_primitives and type(dat) in PRIMITIVE_TYPES: + return encode_primitive(dat) + # compound type - return an object reference and update encoded_heap_objects + else: + my_id = id(dat) + + try: + my_small_id = self.id_to_small_IDs[my_id] + except KeyError: + my_small_id = self.cur_small_ID + self.id_to_small_IDs[my_id] = self.cur_small_ID + self.cur_small_ID += 1 + + del my_id # to prevent bugs later in this function + + ret = ['REF', my_small_id] + + # punt early if you've already encoded this object + if my_small_id in self.encoded_heap_objects: + return ret + + + # major side-effect! + new_obj = [] + self.encoded_heap_objects[my_small_id] = new_obj + + typ = type(dat) + + if typ == list: + new_obj.append('LIST') + for e in dat: + new_obj.append(self.encode(e, get_parent)) + elif typ == tuple: + new_obj.append('TUPLE') + for e in dat: + new_obj.append(self.encode(e, get_parent)) + elif typ == set: + new_obj.append('SET') + for e in dat: + new_obj.append(self.encode(e, get_parent)) + elif typ == dict: + new_obj.append('DICT') + for (k, v) in dat.items(): + # don't display some built-in locals ... + if k not in ('__module__', '__return__', '__locals__'): + new_obj.append([self.encode(k, get_parent), self.encode(v, get_parent)]) + elif typ in (types.FunctionType, types.MethodType): + if is_python3: + argspec = inspect.getfullargspec(dat) + else: + argspec = inspect.getargspec(dat) + + printed_args = [e for e in argspec.args] + if argspec.varargs: + printed_args.append('*' + argspec.varargs) + + if is_python3: + if argspec.varkw: + printed_args.append('**' + argspec.varkw) + if argspec.kwonlyargs: + printed_args.extend(argspec.kwonlyargs) + else: + if argspec.keywords: + printed_args.append('**' + argspec.keywords) + + func_name = get_name(dat) + + pretty_name = func_name + + # sometimes might fail for, say, , so just ignore + # failures for now ... + try: + pretty_name += '(' + ', '.join(printed_args) + ')' + except TypeError: + pass + + encoded_val = ['FUNCTION', pretty_name, None] + if get_parent: + enclosing_frame_id = get_parent(dat) + encoded_val[2] = enclosing_frame_id + new_obj.extend(encoded_val) + elif typ is types.BuiltinFunctionType: + pretty_name = get_name(dat) + '(...)' + new_obj.extend(['FUNCTION', pretty_name, None]) + elif is_class(dat) or is_instance(dat): + self.encode_class_or_instance(dat, new_obj) + elif typ is types.ModuleType: + new_obj.extend(['module', dat.__name__]) + elif typ in PRIMITIVE_TYPES: + assert self.render_heap_primitives + new_obj.extend(['HEAP_PRIMITIVE', type(dat).__name__, encode_primitive(dat)]) + else: + typeStr = str(typ) + m = typeRE.match(typeStr) + + if not m: + m = classRE.match(typeStr) + + assert m, typ + new_obj.extend([m.group(1), str(dat)]) + + return ret + + + def encode_class_or_instance(self, dat, new_obj): + """Encode dat as a class or instance.""" + if is_instance(dat): + if hasattr(dat, '__class__'): + # common case ... + class_name = get_name(dat.__class__) + else: + # super special case for something like + # "from datetime import datetime_CAPI" in Python 3.2, + # which is some weird 'PyCapsule' type ... + # http://docs.python.org/release/3.1.5/c-api/capsule.html + class_name = get_name(type(dat)) + + if hasattr(dat, '__str__') and \ + (not dat.__class__.__str__ is object.__str__): # make sure it's not the lame default __str__ + # N.B.: when objects are being constructed, this call + # might fail since not all fields have yet been populated + try: + pprint_str = str(dat) + except: + pprint_str = '' + + new_obj.extend(['INSTANCE_PPRINT', class_name, pprint_str]) + return # bail early + else: + new_obj.extend(['INSTANCE', class_name]) + # don't traverse inside modules, or else risk EXPLODING the visualization + if class_name == 'module': + return + else: + superclass_names = [e.__name__ for e in dat.__bases__ if e is not object] + new_obj.extend(['CLASS', get_name(dat), superclass_names]) + + # traverse inside of its __dict__ to grab attributes + # (filter out useless-seeming ones, based on anecdotal observation): + hidden = ('__doc__', '__module__', '__return__', '__dict__', + '__locals__', '__weakref__', '__qualname__') + if hasattr(dat, '__dict__'): + user_attrs = sorted([e for e in dat.__dict__ if e not in hidden]) + else: + user_attrs = [] + + for attr in user_attrs: + new_obj.append([self.encode(attr, None), self.encode(dat.__dict__[attr], None)]) + diff --git a/v3/pg_logger.py b/v3/pg_logger.py new file mode 100644 index 000000000..e2bb761cd --- /dev/null +++ b/v3/pg_logger.py @@ -0,0 +1,1241 @@ +# Online Python Tutor +# https://github.com/pgbovine/OnlinePythonTutor/ +# +# Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# This is the meat of the Online Python Tutor back-end. It implements a +# full logger for Python program execution (based on pdb, the standard +# Python debugger imported via the bdb module), printing out the values +# of all in-scope data structures after each executed instruction. + + + +import sys +import bdb # the KEY import here! +import re +import traceback +import types + +is_python3 = (sys.version_info[0] == 3) + +if is_python3: + import io as cStringIO +else: + import cStringIO +import pg_encoder + + +# TODO: not threadsafe: + +# upper-bound on the number of executed lines, in order to guard against +# infinite loops +MAX_EXECUTED_LINES = 300 + +#DEBUG = False +DEBUG = True + +BREAKPOINT_STR = '#break' + +CLASS_RE = re.compile('class\s+') + + +# simple sandboxing scheme: +# +# - use resource.setrlimit to deprive this process of ANY file descriptors +# (which will cause file read/write and subprocess shell launches to fail) +# - restrict user builtins and module imports +# (beware that this is NOT foolproof at all ... there are known flaws!) +# +# ALWAYS use defense-in-depth and don't just rely on these simple mechanisms +try: + import resource + resource_module_loaded = True +except ImportError: + # Google App Engine doesn't seem to have the 'resource' module + resource_module_loaded = False + + +# From http://coreygoldberg.blogspot.com/2009/05/python-redirect-or-turn-off-stdout-and.html +class NullDevice(): + def write(self, s): + pass + + +# These could lead to XSS or other code injection attacks, so be careful: +__html__ = None +def setHTML(htmlStr): + global __html__ + __html__ = htmlStr + +__css__ = None +def setCSS(cssStr): + global __css__ + __css__ = cssStr + +__js__ = None +def setJS(jsStr): + global __js__ + __js__ = jsStr + + +# ugh, I can't figure out why in Python 2, __builtins__ seems to +# be a dict, but in Python 3, __builtins__ seems to be a module, +# so just handle both cases ... UGLY! +if type(__builtins__) is dict: + BUILTIN_IMPORT = __builtins__['__import__'] +else: + assert type(__builtins__) is types.ModuleType + BUILTIN_IMPORT = __builtins__.__import__ + + +# whitelist of module imports +ALLOWED_STDLIB_MODULE_IMPORTS = ('math', 'random', 'datetime', + 'functools', 'itertools', 'operator', 'string', + 'collections', 're', 'json', + 'heapq', 'bisect') + +# whitelist of custom modules to import into OPT +# (TODO: support modules in a subdirectory, but there are various +# logistical problems with doing so that I can't overcome at the moment, +# especially getting setHTML, setCSS, and setJS to work in the imported +# modules.) +CUSTOM_MODULE_IMPORTS = ('callback_module', + 'ttt_module', + 'html_module', + 'watch_module', + 'bintree_module', + 'htmlexample_module', + 'GChartWrapper', + 'matrix', + 'htmlFrame') + + +# PREEMPTIVELY import all of these modules, so that when the user's +# script imports them, it won't try to do a file read (since they've +# already been imported and cached in memory). Remember that when +# the user's code runs, resource.setrlimit(resource.RLIMIT_NOFILE, (0, 0)) +# will already be in effect, so no more files can be opened. +# +# NB: All modules in CUSTOM_MODULE_IMPORTS will be imported, warts and +# all, so they better work on Python 2 and 3! +for m in ALLOWED_STDLIB_MODULE_IMPORTS + CUSTOM_MODULE_IMPORTS: + __import__(m) + + +# Restrict imports to a whitelist +def __restricted_import__(*args): + if args[0] in ALLOWED_STDLIB_MODULE_IMPORTS + CUSTOM_MODULE_IMPORTS: + imported_mod = BUILTIN_IMPORT(*args) + + if args[0] in CUSTOM_MODULE_IMPORTS: + # add special magical functions to custom imported modules + setattr(imported_mod, 'setHTML', setHTML) + setattr(imported_mod, 'setCSS', setCSS) + setattr(imported_mod, 'setJS', setJS) + + return imported_mod + else: + raise ImportError('{0} not supported'.format(args[0])) + + +# Support interactive user input by: +# +# 1. running the entire program up to a call to raw_input (or input in py3), +# 2. bailing and returning a trace ending in a special 'raw_input' event, +# 3. letting the web frontend issue a prompt to the user to grab a string, +# 4. RE-RUNNING the whole program with that string added to input_string_queue, +# 5. which should bring execution to the next raw_input call (if +# available), or to termination. +# Repeat until no more raw_input calls are encountered. +# Note that this is mad inefficient, but is simple to implement! +# +# TODO: To make this technique more deterministic, +# save away and restore the random seed. + +# queue of input strings passed from either raw_input or mouse_input +input_string_queue = [] + +class RawInputException(Exception): + pass + +def raw_input_wrapper(prompt=''): + if input_string_queue: + input_str = input_string_queue.pop(0) + + # write the prompt and user input to stdout, to emulate what happens + # at the terminal + sys.stdout.write(prompt) + sys.stdout.write(input_str + "\n") # newline to simulate the user hitting Enter + return input_str + raise RawInputException(prompt) + +class MouseInputException(Exception): + pass + +def mouse_input_wrapper(prompt=''): + if input_string_queue: + return input_string_queue.pop(0) + raise MouseInputException(prompt) + + + +# blacklist of builtins +BANNED_BUILTINS = ['reload', 'open', 'compile', + 'file', 'eval', 'exec', 'execfile', + 'exit', 'quit', 'help', + 'dir', 'globals', 'locals', 'vars'] +# Peter says 'apply' isn't dangerous, so don't ban it + +# ban input() in Python 2 since it does an eval! +# (Python 3 input is Python 2 raw_input, so we're okay) +if not is_python3: + BANNED_BUILTINS.append('input') + + +IGNORE_VARS = set(('__user_stdout__', '__OPT_toplevel__', '__builtins__', '__name__', '__exception__', '__doc__', '__package__')) + +def get_user_stdout(frame): + return frame.f_globals['__user_stdout__'].getvalue() + +# at_global_scope should be true only if 'frame' represents the global scope +def get_user_globals(frame, at_global_scope=False): + d = filter_var_dict(frame.f_globals) + # only present in crazy_mode ... + if at_global_scope and hasattr(frame, 'f_valuestack'): + for (i, e) in enumerate(frame.f_valuestack): + d['_tmp' + str(i+1)] = e + + # also filter out __return__ for globals only, but NOT for locals + if '__return__' in d: + del d['__return__'] + return d + +def get_user_locals(frame): + ret = filter_var_dict(frame.f_locals) + # only present in crazy_mode ... + if hasattr(frame, 'f_valuestack'): + for (i, e) in enumerate(frame.f_valuestack): + ret['_tmp' + str(i+1)] = e + + return ret + +def filter_var_dict(d): + ret = {} + for (k,v) in d.items(): + if k not in IGNORE_VARS: + ret[k] = v + return ret + + +# yield all function objects locally-reachable from frame, +# making sure to traverse inside all compound objects ... +def visit_all_locally_reachable_function_objs(frame): + for (k, v) in get_user_locals(frame).items(): + for e in visit_function_obj(v, set()): + if e: # only non-null if it's a function object + assert type(e) in (types.FunctionType, types.MethodType) + yield e + + +# TODO: this might be slow if we're traversing inside lots of objects: +def visit_function_obj(v, ids_seen_set): + v_id = id(v) + + # to prevent infinite loop + if v_id in ids_seen_set: + yield None + else: + ids_seen_set.add(v_id) + + typ = type(v) + + # simple base case + if typ in (types.FunctionType, types.MethodType): + yield v + + # recursive cases + elif typ in (list, tuple, set): + for child in v: + for child_res in visit_function_obj(child, ids_seen_set): + yield child_res + + elif typ == dict or pg_encoder.is_class(v) or pg_encoder.is_instance(v): + contents_dict = None + + if typ == dict: + contents_dict = v + # warning: some classes or instances don't have __dict__ attributes + elif hasattr(v, '__dict__'): + contents_dict = v.__dict__ + + if contents_dict: + for (key_child, val_child) in contents_dict.items(): + for key_child_res in visit_function_obj(key_child, ids_seen_set): + yield key_child_res + for val_child_res in visit_function_obj(val_child, ids_seen_set): + yield val_child_res + + # degenerate base case + yield None + + +class PGLogger(bdb.Bdb): + + def __init__(self, cumulative_mode, heap_primitives, show_only_outputs, finalizer_func, + disable_security_checks=False, crazy_mode=False): + bdb.Bdb.__init__(self) + self.mainpyfile = '' + self._wait_for_mainpyfile = 0 + + self.disable_security_checks = disable_security_checks + + # if True, then displays ALL stack frames that have ever existed + # rather than only those currently on the stack (and their + # lexical parents) + self.cumulative_mode = cumulative_mode + + # if True, then render certain primitive objects as heap objects + self.render_heap_primitives = heap_primitives + + # if True, then don't render any data structures in the trace, + # and show only outputs + self.show_only_outputs = show_only_outputs + + # Run using the custom Py2crazy Python interpreter + self.crazy_mode = crazy_mode + + # a function that takes the output trace as a parameter and + # processes it + self.finalizer_func = finalizer_func + + # each entry contains a dict with the information for a single + # executed line + self.trace = [] + + # if this is true, don't put any more stuff into self.trace + self.done = False + + # if this is non-null, don't do any more tracing until a + # 'return' instruction with a stack gotten from + # get_stack_code_IDs() that matches wait_for_return_stack + self.wait_for_return_stack = None + + #http://stackoverflow.com/questions/2112396/in-python-in-google-app-engine-how-do-you-capture-output-produced-by-the-print + self.GAE_STDOUT = sys.stdout + + # Key: function object + # Value: parent frame + self.closures = {} + + # set of function objects that were defined in the global scope + self.globally_defined_funcs = set() + + # Key: frame object + # Value: monotonically increasing small ID, based on call order + self.frame_ordered_ids = {} + self.cur_frame_id = 1 + + # List of frames to KEEP AROUND after the function exits. + # If cumulative_mode is True, then keep ALL frames in + # zombie_frames; otherwise keep only frames where + # nested functions were defined within them. + self.zombie_frames = [] + + # set of elements within zombie_frames that are also + # LEXICAL PARENTS of other frames + self.parent_frames_set = set() + + # all globals that ever appeared in the program, in the order in + # which they appeared. note that this might be a superset of all + # the globals that exist at any particular execution point, + # since globals might have been deleted (using, say, 'del') + self.all_globals_in_order = [] + + # very important for this single object to persist throughout + # execution, or else canonical small IDs won't be consistent. + self.encoder = pg_encoder.ObjectEncoder(self.render_heap_primitives) + + self.executed_script = None # Python script to be executed! + + # if there is at least one line that ends with BREAKPOINT_STR, + # then activate "breakpoint mode", where execution should stop + # ONLY at breakpoint lines. + self.breakpoints = [] + + self.prev_lineno = -1 # keep track of previous line just executed + + + def get_frame_id(self, cur_frame): + return self.frame_ordered_ids[cur_frame] + + # Returns the (lexical) parent of a function value. + def get_parent_of_function(self, val): + if val not in self.closures: + return None + return self.get_frame_id(self.closures[val]) + + + # Returns the (lexical) parent frame of the function that was called + # to create the stack frame 'frame'. + # + # OKAY, this is a SUPER hack, but I don't see a way around it + # since it's impossible to tell exactly which function + # ('closure') object was called to create 'frame'. + # + # The Python interpreter doesn't maintain this information, + # so unless we hack the interpreter, we will simply have + # to make an educated guess based on the contents of local + # variables inherited from possible parent frame candidates. + def get_parent_frame(self, frame): + for (func_obj, parent_frame) in self.closures.items(): + # ok, there's a possible match, but let's compare the + # local variables in parent_frame to those of frame + # to make sure. this is a hack that happens to work because in + # Python, each stack frame inherits ('inlines') a copy of the + # variables from its (lexical) parent frame. + if func_obj.__code__ == frame.f_code: + all_matched = True + for k in frame.f_locals: + # Do not try to match local names + if k in frame.f_code.co_varnames: + continue + if k != '__return__' and k in parent_frame.f_locals: + if parent_frame.f_locals[k] != frame.f_locals[k]: + all_matched = False + break + + if all_matched: + return parent_frame + + return None + + + def lookup_zombie_frame_by_id(self, frame_id): + # TODO: kinda inefficient + for e in self.zombie_frames: + if self.get_frame_id(e) == frame_id: + return e + assert False # should never get here + + + # unused ... + #def reset(self): + # bdb.Bdb.reset(self) + # self.forget() + + + def forget(self): + self.lineno = None + self.stack = [] + self.curindex = 0 + self.curframe = None + + def setup(self, f, t): + self.forget() + self.stack, self.curindex = self.get_stack(f, t) + self.curframe = self.stack[self.curindex][0] + + # should be a reasonably unique ID to match calls and returns: + def get_stack_code_IDs(self): + return [id(e[0].f_code) for e in self.stack] + + + # Override Bdb methods + + def user_call(self, frame, argument_list): + """This method is called when there is the remote possibility + that we ever need to stop in this function.""" + # TODO: figure out a way to move this down to 'def interaction' + # or right before self.trace.append ... + if self.done: return + + if self._wait_for_mainpyfile: + return + if self.stop_here(frame): + # delete __return__ so that on subsequent calls to + # a generator function, the OLD yielded (returned) + # value gets deleted from the frame ... + try: + del frame.f_locals['__return__'] + except KeyError: + pass + + self.interaction(frame, None, 'call') + + def user_line(self, frame): + """This function is called when we stop or break at this line.""" + if self.done: return + + if self._wait_for_mainpyfile: + if (self.canonic(frame.f_code.co_filename) != "" or + frame.f_lineno <= 0): + return + self._wait_for_mainpyfile = 0 + self.interaction(frame, None, 'step_line') + + def user_return(self, frame, return_value): + """This function is called when a return trap is set here.""" + if self.done: return + + frame.f_locals['__return__'] = return_value + self.interaction(frame, None, 'return') + + def user_exception(self, frame, exc_info): + """This function is called if an exception occurs, + but only if we are to stop at or just below this level.""" + if self.done: return + + exc_type, exc_value, exc_traceback = exc_info + frame.f_locals['__exception__'] = exc_type, exc_value + if type(exc_type) == type(''): + exc_type_name = exc_type + else: exc_type_name = exc_type.__name__ + + if exc_type_name == 'RawInputException': + self.trace.append(dict(event='raw_input', prompt=exc_value.args[0])) + self.done = True + elif exc_type_name == 'MouseInputException': + self.trace.append(dict(event='mouse_input', prompt=exc_value.args[0])) + self.done = True + else: + self.interaction(frame, exc_traceback, 'exception') + + def get_script_line(self, n): + return self.executed_script_lines[n-1] + + # General interaction function + + def interaction(self, frame, traceback, event_type): + self.setup(frame, traceback) + tos = self.stack[self.curindex] + top_frame = tos[0] + lineno = tos[1] + + + # debug ... + ''' + print >> sys.stderr, '=== STACK ===' + for (e,ln) in self.stack: + print >> sys.stderr, e.f_code.co_name + ' ' + e.f_code.co_filename + ' ' + str(ln) + print >> sys.stderr, "top_frame", top_frame.f_code.co_name + print >> sys.stderr + ''' + + + # don't trace inside of ANY functions that aren't user-written code + # (e.g., those from imported modules -- e.g., random, re -- or the + # __restricted_import__ function in this file) + # + # empirically, it seems like the FIRST entry in self.stack is + # the 'run' function from bdb.py, but everything else on the + # stack is the user program's "real stack" + + # Look only at the "topmost" frame on the stack ... + + # it seems like user-written code has a filename of '', + # but maybe there are false positives too? + if self.canonic(top_frame.f_code.co_filename) != '': + return + # also don't trace inside of the magic "constructor" code + if top_frame.f_code.co_name == '__new__': + return + # or __repr__, which is often called when running print statements + if top_frame.f_code.co_name == '__repr__': + return + + # if top_frame.f_globals doesn't contain the sentinel '__OPT_toplevel__', + # then we're in another global scope altogether, so skip it! + # (this comes up in tests/backend-tests/namedtuple.txt) + if '__OPT_toplevel__' not in top_frame.f_globals: + return + + + # OLD CODE -- bail if any element on the stack matches these conditions + # note that the old code passes tests/backend-tests/namedtuple.txt + # but the new code above doesn't :/ + ''' + for (cur_frame, cur_line) in self.stack[1:]: + # it seems like user-written code has a filename of '', + # but maybe there are false positives too? + if self.canonic(cur_frame.f_code.co_filename) != '': + return + # also don't trace inside of the magic "constructor" code + if cur_frame.f_code.co_name == '__new__': + return + # or __repr__, which is often called when running print statements + if cur_frame.f_code.co_name == '__repr__': + return + ''' + + + # don't trace if wait_for_return_stack is non-null ... + if self.wait_for_return_stack: + if event_type == 'return' and \ + (self.wait_for_return_stack == self.get_stack_code_IDs()): + self.wait_for_return_stack = None # reset! + return # always bail! + else: + # Skip all "calls" that are actually class definitions, since + # those faux calls produce lots of ugly cruft in the trace. + # + # NB: Only trigger on calls to functions defined in + # user-written code (i.e., co_filename == ''), but that + # should already be ensured by the above check for whether we're + # in user-written code. + if event_type == 'call': + func_line = self.get_script_line(top_frame.f_code.co_firstlineno) + if CLASS_RE.match(func_line.lstrip()): # ignore leading spaces + self.wait_for_return_stack = self.get_stack_code_IDs() + return + + + self.encoder.reset_heap() # VERY VERY VERY IMPORTANT, + # or else we won't properly capture heap object mutations in the trace! + + if event_type == 'call': + # Don't be so strict about this assertion because it FAILS + # when you're calling a generator (not for the first time), + # since that frame has already previously been on the stack ... + #assert top_frame not in self.frame_ordered_ids + + self.frame_ordered_ids[top_frame] = self.cur_frame_id + self.cur_frame_id += 1 + + if self.cumulative_mode: + self.zombie_frames.append(top_frame) + + + # only render zombie frames that are NO LONGER on the stack + cur_stack_frames = [e[0] for e in self.stack] + zombie_frames_to_render = [e for e in self.zombie_frames if e not in cur_stack_frames] + + + # each element is a pair of (function name, ENCODED locals dict) + encoded_stack_locals = [] + + + # returns a dict with keys: function name, frame id, id of parent frame, encoded_locals dict + def create_encoded_stack_entry(cur_frame): + ret = {} + + + parent_frame_id_list = [] + + f = cur_frame + while True: + p = self.get_parent_frame(f) + if p: + pid = self.get_frame_id(p) + assert pid + parent_frame_id_list.append(pid) + f = p + else: + break + + + cur_name = cur_frame.f_code.co_name + + if cur_name == '': + cur_name = 'unnamed function' + + # encode in a JSON-friendly format now, in order to prevent ill + # effects of aliasing later down the line ... + encoded_locals = {} + + for (k, v) in get_user_locals(cur_frame).items(): + is_in_parent_frame = False + + # don't display locals that appear in your parents' stack frames, + # since that's redundant + for pid in parent_frame_id_list: + parent_frame = self.lookup_zombie_frame_by_id(pid) + if k in parent_frame.f_locals: + # ignore __return__, which is never copied + if k != '__return__': + # these values SHOULD BE ALIASES + # (don't do an 'is' check since it might not fire for primitives) + if parent_frame.f_locals[k] == v: + is_in_parent_frame = True + + if is_in_parent_frame and k not in cur_frame.f_code.co_varnames: + continue + + # don't display some built-in locals ... + if k == '__module__': + continue + + encoded_val = self.encoder.encode(v, self.get_parent_of_function) + encoded_locals[k] = encoded_val + + + # order the variable names in a sensible way: + + # Let's start with co_varnames, since it (often) contains all + # variables in this frame, some of which might not exist yet. + ordered_varnames = [] + for e in cur_frame.f_code.co_varnames: + if e in encoded_locals: + ordered_varnames.append(e) + + # sometimes co_varnames doesn't contain all of the true local + # variables: e.g., when executing a 'class' definition. in that + # case, iterate over encoded_locals and push them onto the end + # of ordered_varnames in alphabetical order + for e in sorted(encoded_locals.keys()): + if e != '__return__' and e not in ordered_varnames: + ordered_varnames.append(e) + + # finally, put __return__ at the very end + if '__return__' in encoded_locals: + ordered_varnames.append('__return__') + + # doctor Python 3 initializer to look like a normal function (denero) + if '__locals__' in encoded_locals: + ordered_varnames.remove('__locals__') + local = encoded_locals.pop('__locals__') + if encoded_locals.get('__return__', True) is None: + encoded_locals['__return__'] = local + + # crucial sanity checks! + assert len(ordered_varnames) == len(encoded_locals) + for e in ordered_varnames: + assert e in encoded_locals + + return dict(func_name=cur_name, + is_parent=(cur_frame in self.parent_frames_set), + frame_id=self.get_frame_id(cur_frame), + parent_frame_id_list=parent_frame_id_list, + encoded_locals=encoded_locals, + ordered_varnames=ordered_varnames) + + + i = self.curindex + + # look for whether a nested function has been defined during + # this particular call: + if i > 1: # i == 1 implies that there's only a global scope visible + for v in visit_all_locally_reachable_function_objs(top_frame): + if (v not in self.closures and \ + v not in self.globally_defined_funcs): + + # Look for the presence of the code object (v.func_code + # for Python 2 or v.__code__ for Python 3) in the + # constant pool (f_code.co_consts) of an enclosing + # stack frame, and set that frame as your parent. + # + # This technique properly handles lambdas passed as + # function parameters. e.g., this example: + # + # def foo(x): + # bar(lambda y: x + y) + # def bar(a): + # print a(20) + # foo(10) + chosen_parent_frame = None + for (my_frame, my_lineno) in self.stack: + if chosen_parent_frame: + break + + for frame_const in my_frame.f_code.co_consts: + if frame_const is (v.__code__ if is_python3 else v.func_code): + chosen_parent_frame = my_frame + break + + # 2013-12-01 commented out this line so tests/backend-tests/papajohn-monster.txt + # works without an assertion failure ... + #assert chosen_parent_frame # I hope this always passes :0 + + # this condition should be False for functions declared in global scope ... + if chosen_parent_frame in self.frame_ordered_ids: + self.closures[v] = chosen_parent_frame + self.parent_frames_set.add(chosen_parent_frame) # unequivocally add to this set!!! + if not chosen_parent_frame in self.zombie_frames: + self.zombie_frames.append(chosen_parent_frame) + else: + # if there is only a global scope visible ... + for (k, v) in get_user_globals(top_frame).items(): + if (type(v) in (types.FunctionType, types.MethodType) and \ + v not in self.closures): + self.globally_defined_funcs.add(v) + + + # climb up until you find '', which is (hopefully) the global scope + while True: + cur_frame = self.stack[i][0] + cur_name = cur_frame.f_code.co_name + if cur_name == '': + break + + # do this check because in some cases, certain frames on the + # stack might NOT be tracked, so don't push a stack entry for + # those frames. this happens when you have a callback function + # in an imported module. e.g., your code: + # def foo(): + # bar(baz) + # + # def baz(): pass + # + # imported module code: + # def bar(callback_func): + # callback_func() + # + # when baz is executing, the real stack is [foo, bar, baz] but + # bar is in imported module code, so pg_logger doesn't trace + # it, and it doesn't show up in frame_ordered_ids. thus, the + # stack to render should only be [foo, baz]. + if cur_frame in self.frame_ordered_ids: + encoded_stack_locals.append(create_encoded_stack_entry(cur_frame)) + i -= 1 + + zombie_encoded_stack_locals = [create_encoded_stack_entry(e) for e in zombie_frames_to_render] + + + # encode in a JSON-friendly format now, in order to prevent ill + # effects of aliasing later down the line ... + encoded_globals = {} + for (k, v) in get_user_globals(tos[0], at_global_scope=(self.curindex <= 1)).items(): + encoded_val = self.encoder.encode(v, self.get_parent_of_function) + encoded_globals[k] = encoded_val + + if k not in self.all_globals_in_order: + self.all_globals_in_order.append(k) + + # filter out globals that don't exist at this execution point + # (because they've been, say, deleted with 'del') + ordered_globals = [e for e in self.all_globals_in_order if e in encoded_globals] + assert len(ordered_globals) == len(encoded_globals) + + + # merge zombie_encoded_stack_locals and encoded_stack_locals + # into one master ordered list using some simple rules for + # making it look aesthetically pretty + stack_to_render = []; + + # first push all regular stack entries + if encoded_stack_locals: + for e in encoded_stack_locals: + e['is_zombie'] = False + e['is_highlighted'] = False + stack_to_render.append(e) + + # highlight the top-most active stack entry + stack_to_render[0]['is_highlighted'] = True + + + # now push all zombie stack entries + for e in zombie_encoded_stack_locals: + # don't display return value for zombie frames + # TODO: reconsider ... + ''' + try: + e['ordered_varnames'].remove('__return__') + except ValueError: + pass + ''' + + e['is_zombie'] = True + e['is_highlighted'] = False # never highlight zombie entries + + stack_to_render.append(e) + + # now sort by frame_id since that sorts frames in "chronological + # order" based on the order they were invoked + stack_to_render.sort(key=lambda e: e['frame_id']) + + + + # create a unique hash for this stack entry, so that the + # frontend can uniquely identify it when doing incremental + # rendering. the strategy is to use a frankenstein-like mix of the + # relevant fields to properly disambiguate closures and recursive + # calls to the same function + for e in stack_to_render: + hash_str = e['func_name'] + # frame_id is UNIQUE, so it can disambiguate recursive calls + hash_str += '_f' + str(e['frame_id']) + + # needed to refresh GUI display ... + if e['is_parent']: + hash_str += '_p' + + # TODO: this is no longer needed, right? (since frame_id is unique) + #if e['parent_frame_id_list']: + # hash_str += '_p' + '_'.join([str(i) for i in e['parent_frame_id_list']]) + if e['is_zombie']: + hash_str += '_z' + + e['unique_hash'] = hash_str + + + if self.show_only_outputs: + trace_entry = dict(line=lineno, + event=event_type, + func_name=tos[0].f_code.co_name, + globals={}, + ordered_globals=[], + stack_to_render=[], + heap={}, + stdout=get_user_stdout(tos[0])) + else: + trace_entry = dict(line=lineno, + event=event_type, + func_name=tos[0].f_code.co_name, + globals=encoded_globals, + ordered_globals=ordered_globals, + stack_to_render=stack_to_render, + heap=self.encoder.get_heap(), + stdout=get_user_stdout(tos[0])) + + # optional column numbers for greater precision + # (only relevant in Py2crazy, a hacked CPython that supports column numbers) + if self.crazy_mode: + # at the very least, grab the column number + trace_entry['column'] = frame.f_colno + + # now try to find start_col and extent + # (-1 is an invalid instruction index) + if frame.f_lasti >= 0: + key = (frame.f_code.co_code, frame.f_lineno, frame.f_colno,frame.f_lasti) + if key in self.bytecode_map: + v = self.bytecode_map[key] + trace_entry['expr_start_col'] = v.start_col + trace_entry['expr_width'] = v.extent + trace_entry['opcode'] = v.opcode + + + # TODO: refactor into a non-global + global __html__, __css__, __js__ + if __html__: + trace_entry['html_output'] = __html__ + if __css__: + trace_entry['css_output'] = __css__ + if __js__: + trace_entry['js_output'] = __js__ + + # if there's an exception, then record its info: + if event_type == 'exception': + # always check in f_locals + exc = frame.f_locals['__exception__'] + trace_entry['exception_msg'] = exc[0].__name__ + ': ' + str(exc[1]) + + + # append to the trace only the breakpoint line and the next + # executed line, so that if you set only ONE breakpoint, OPT shows + # the state before and after that line gets executed. + append_to_trace = True + if self.breakpoints: + if not ((lineno in self.breakpoints) or (self.prev_lineno in self.breakpoints)): + append_to_trace = False + + # TRICKY -- however, if there's an exception, then ALWAYS + # append it to the trace, so that the error can be displayed + if event_type == 'exception': + append_to_trace = True + + self.prev_lineno = lineno + + if append_to_trace: + self.trace.append(trace_entry) + + + # sanity check to make sure the state of the world at a 'call' instruction + # is identical to that at the instruction immediately following it ... + ''' + if len(self.trace) > 1: + cur = self.trace[-1] + prev = self.trace[-2] + if prev['event'] == 'call': + assert cur['globals'] == prev['globals'] + for (s1, s2) in zip(cur['stack_to_render'], prev['stack_to_render']): + assert s1 == s2 + assert cur['heap'] == prev['heap'] + assert cur['stdout'] == prev['stdout'] + ''' + + + if len(self.trace) >= MAX_EXECUTED_LINES: + self.trace.append(dict(event='instruction_limit_reached', exception_msg='(stopped after ' + str(MAX_EXECUTED_LINES) + ' steps to prevent possible infinite loop)')) + self.force_terminate() + + self.forget() + + + def _runscript(self, script_str, custom_globals=None): + self.executed_script = script_str + self.executed_script_lines = self.executed_script.splitlines() + + for (i, line) in enumerate(self.executed_script_lines): + line_no = i + 1 + if line.endswith(BREAKPOINT_STR): + self.breakpoints.append(line_no) + + + # populate an extent map to get more accurate ranges from code + if self.crazy_mode: + # in Py2crazy standard library as Python-2.7.5/Lib/super_dis.py + import super_dis + try: + self.bytecode_map = super_dis.get_bytecode_map(self.executed_script) + except: + # failure oblivious + self.bytecode_map = {} + + + # When bdb sets tracing, a number of call and line events happens + # BEFORE debugger even reaches user's code (and the exact sequence of + # events depends on python version). So we take special measures to + # avoid stopping before we reach the main script (see user_line and + # user_call for details). + self._wait_for_mainpyfile = 1 + + + # ok, let's try to sorta 'sandbox' the user script by not + # allowing certain potentially dangerous operations. + user_builtins = {} + + # ugh, I can't figure out why in Python 2, __builtins__ seems to + # be a dict, but in Python 3, __builtins__ seems to be a module, + # so just handle both cases ... UGLY! + if type(__builtins__) is dict: + builtin_items = __builtins__.items() + else: + assert type(__builtins__) is types.ModuleType + builtin_items = [] + for k in dir(__builtins__): + builtin_items.append((k, getattr(__builtins__, k))) + + for (k, v) in builtin_items: + if k in BANNED_BUILTINS: + continue + elif k == '__import__': + user_builtins[k] = __restricted_import__ + else: + if k == 'raw_input': + user_builtins[k] = raw_input_wrapper + elif k == 'input' and is_python3: + # Python 3 input() is Python 2 raw_input() + user_builtins[k] = raw_input_wrapper + else: + user_builtins[k] = v + + user_builtins['mouse_input'] = mouse_input_wrapper + + # TODO: we can disable these imports here, but a crafty user can + # always get a hold of them by importing one of the external + # modules, so there's no point in trying security by obscurity + user_builtins['setHTML'] = setHTML + user_builtins['setCSS'] = setCSS + user_builtins['setJS'] = setJS + + user_stdout = cStringIO.StringIO() + + sys.stdout = user_stdout + + self.ORIGINAL_STDERR = sys.stderr + + # don't do this, or else certain kinds of errors, such as syntax + # errors, will be silently ignored. WEIRD! + #sys.stderr = NullDevice # silence errors + + user_globals = {"__name__" : "__main__", + "__builtins__" : user_builtins, + "__user_stdout__" : user_stdout, + # sentinel value for frames deriving from a top-level module + "__OPT_toplevel__": True} + + if custom_globals: + user_globals.update(custom_globals) + + try: + # enforce resource limits RIGHT BEFORE running script_str + + # set ~200MB virtual memory limit AND a 5-second CPU time + # limit (tuned for Webfaction shared hosting) to protect against + # memory bombs such as: + # x = 2 + # while True: x = x*x + if resource_module_loaded and (not self.disable_security_checks): + resource.setrlimit(resource.RLIMIT_AS, (200000000, 200000000)) + resource.setrlimit(resource.RLIMIT_CPU, (5, 5)) + + # protect against unauthorized filesystem accesses ... + resource.setrlimit(resource.RLIMIT_NOFILE, (0, 0)) # no opened files allowed + + # VERY WEIRD. If you activate this resource limitation, it + # ends up generating an EMPTY trace for the following program: + # "x = 0\nfor i in range(10):\n x += 1\n print x\n x += 1\n" + # (at least on my Webfaction hosting with Python 2.7) + #resource.setrlimit(resource.RLIMIT_FSIZE, (0, 0)) # (redundancy for paranoia) + + # sys.modules contains an in-memory cache of already-loaded + # modules, so if you delete modules from here, they will + # need to be re-loaded from the filesystem. + # + # Thus, as an extra precaution, remove these modules so that + # they can't be re-imported without opening a new file, + # which is disallowed by resource.RLIMIT_NOFILE + # + # Of course, this isn't a foolproof solution by any means, + # and it might lead to UNEXPECTED FAILURES later in execution. + del sys.modules['os'] + del sys.modules['sys'] + + self.run(script_str, user_globals, user_globals) + # sys.exit ... + except SystemExit: + #sys.exit(0) + raise bdb.BdbQuit + except: + if DEBUG: + traceback.print_exc() + + trace_entry = dict(event='uncaught_exception') + + (exc_type, exc_val, exc_tb) = sys.exc_info() + if hasattr(exc_val, 'lineno'): + trace_entry['line'] = exc_val.lineno + if hasattr(exc_val, 'offset'): + trace_entry['offset'] = exc_val.offset + + trace_entry['exception_msg'] = type(exc_val).__name__ + ": " + str(exc_val) + + # SUPER SUBTLE! if this exact same exception has already been + # recorded by the program, then DON'T record it again as an + # uncaught_exception + already_caught = False + for e in self.trace: + if e['event'] == 'exception' and e['exception_msg'] == trace_entry['exception_msg']: + already_caught = True + break + + if not already_caught: + if not self.done: + self.trace.append(trace_entry) + + raise bdb.BdbQuit # need to forceably STOP execution + + + def force_terminate(self): + #self.finalize() + raise bdb.BdbQuit # need to forceably STOP execution + + + def finalize(self): + sys.stdout = self.GAE_STDOUT # very important! + sys.stderr = self.ORIGINAL_STDERR + + assert len(self.trace) <= (MAX_EXECUTED_LINES + 1) + + # don't do this anymore ... + ''' + # filter all entries after 'return' from '', since they + # seem extraneous: + res = [] + for e in self.trace: + res.append(e) + if e['event'] == 'return' and e['func_name'] == '': + break + ''' + + res = self.trace + + # if the SECOND to last entry is an 'exception' + # and the last entry is return from , then axe the last + # entry, for aesthetic reasons :) + if len(res) >= 2 and \ + res[-2]['event'] == 'exception' and \ + res[-1]['event'] == 'return' and res[-1]['func_name'] == '': + res.pop() + + self.trace = res + + return self.finalizer_func(self.executed_script, self.trace) + + +import json + +# the MAIN meaty function!!! +def exec_script_str(script_str, raw_input_lst_json, options_json, finalizer_func): + options = json.loads(options_json) + + py_crazy_mode = ('py_crazy_mode' in options and options['py_crazy_mode']) + + logger = PGLogger(options['cumulative_mode'], options['heap_primitives'], options['show_only_outputs'], finalizer_func, + crazy_mode=py_crazy_mode) + + # TODO: refactor these NOT to be globals + global input_string_queue + input_string_queue = [] + if raw_input_lst_json: + # TODO: if we want to support unicode, remove str() cast + input_string_queue = [str(e) for e in json.loads(raw_input_lst_json)] + + global __html__, __css__, __js__ + __html__, __css__, __js__ = None, None, None + + try: + logger._runscript(script_str) + except bdb.BdbQuit: + pass + finally: + logger.finalize() + + +# disables security check and returns the result of finalizer_func +# WARNING: ONLY RUN THIS LOCALLY and never over the web, since +# security checks are disabled +def exec_script_str_local(script_str, raw_input_lst_json, cumulative_mode, heap_primitives, finalizer_func): + # TODO: add py_crazy_mode option here too ... + logger = PGLogger(cumulative_mode, heap_primitives, False, finalizer_func, disable_security_checks=True) + + # TODO: refactor these NOT to be globals + global input_string_queue + input_string_queue = [] + if raw_input_lst_json: + # TODO: if we want to support unicode, remove str() cast + input_string_queue = [str(e) for e in json.loads(raw_input_lst_json)] + + global __html__, __css__, __js__ + __html__, __css__, __js__ = None, None, None + + try: + logger._runscript(script_str) + except bdb.BdbQuit: + pass + finally: + return logger.finalize() + + +def exec_str_with_user_ns(script_str, user_ns, finalizer_func): + logger = PGLogger(False, False, False, finalizer_func, disable_security_checks=True) + + global __html__, __css__, __js__ + __html__, __css__, __js__ = None, None, None + + try: + logger._runscript(script_str, user_ns) + except bdb.BdbQuit: + pass + finally: + return logger.finalize() + diff --git a/v3/pythontutor.py b/v3/pythontutor.py new file mode 100644 index 000000000..d914b9c26 --- /dev/null +++ b/v3/pythontutor.py @@ -0,0 +1,88 @@ +# Online Python Tutor +# https://github.com/pgbovine/OnlinePythonTutor/ +# +# Copyright (C) 2010-2013 Philip J. Guo (philip@pgbovine.net) +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# TODO: if we want to enable concurrent requests, then make sure this is threadsafe (e.g., no mutable globals) +# then add this string to app.yaml: 'threadsafe: true' + +import webapp2 +import pg_logger +import json +import jinja2, os +import sys + + +# TODO: this croaks for some reason ... +TEST_STR = "import os\nos.chdir('/')" + + +JINJA_ENVIRONMENT = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__))) + + +class TutorPage(webapp2.RequestHandler): + + def get(self): + self.response.headers['Content-Type'] = 'text/html' + template = JINJA_ENVIRONMENT.get_template('visualize.html') + self.response.out.write(template.render()) + + +class IframeEmbedPage(webapp2.RequestHandler): + def get(self): + self.response.headers['Content-Type'] = 'text/html' + template = JINJA_ENVIRONMENT.get_template('iframe-embed.html') + self.response.out.write(template.render()) + + +class LessonPage(webapp2.RequestHandler): + + def get(self): + self.response.headers['Content-Type'] = 'text/html' + template = JINJA_ENVIRONMENT.get_template('lesson.html') + self.response.out.write(template.render()) + + +class ExecScript(webapp2.RequestHandler): + + def json_finalizer(self, input_code, output_trace): + ret = dict(code=input_code, trace=output_trace) + json_output = json.dumps(ret, indent=None) # use indent=None for most compact repr + self.response.out.write(json_output) + + def get(self): + self.response.headers['Content-Type'] = 'application/json' + self.response.headers['Cache-Control'] = 'no-cache' + + pg_logger.exec_script_str(self.request.get('user_script'), + self.request.get('raw_input_json'), + self.request.get('options_json'), + self.json_finalizer) + + +app = webapp2.WSGIApplication([('/', TutorPage), + ('/iframe-embed.html', IframeEmbedPage), + ('/lesson.html', LessonPage), + ('/exec', ExecScript)], + debug=True) + diff --git a/v3/relative-positioning-embedding-demo/embedding-demo.html b/v3/relative-positioning-embedding-demo/embedding-demo.html new file mode 100644 index 000000000..835675db7 --- /dev/null +++ b/v3/relative-positioning-embedding-demo/embedding-demo.html @@ -0,0 +1,43 @@ + + + + + Online Python Tutor embedding demo + + + + + + + + + + + + + + + + + + + + + + + +

      Recursive list sum (from pythontutor.com home page):

      + +
      + + + diff --git a/v3/relative-positioning-embedding-demo/embedding-demo.js b/v3/relative-positioning-embedding-demo/embedding-demo.js new file mode 100644 index 000000000..79ca03635 --- /dev/null +++ b/v3/relative-positioning-embedding-demo/embedding-demo.js @@ -0,0 +1,19 @@ +// To embed Online Python Tutor visualizations into embedding-demo.html ... + +// 1. Run generate_json_trace.py to generate execution traces as JavaScript variables. +// (WARNING: The following lines are VERY LONG.) + +// Run: +// python generate_json_trace.py --create_jsvar=listSumTrace tests/backend-tests/list_sum.txt +// and copy-and-paste the output line into here: +var listSumTrace = {"code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", "trace": [{"ordered_globals": [], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {}, "heap": {}, "line": 1, "event": "step_line"}, {"ordered_globals": ["listSum"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null]}, "line": 8, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4]}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 5, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 1, "event": "call"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 2, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "step_line"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 4, "encoded_locals": {"__return__": 0, "numbers": null}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f4", "ordered_varnames": ["numbers", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 3, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 3, "encoded_locals": {"__return__": 3, "numbers": ["REF", 4], "rest": null, "f": 3}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f3", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": false, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest"]}, {"frame_id": 2, "encoded_locals": {"__return__": 5, "numbers": ["REF", 3], "rest": ["REF", 4], "f": 2}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f2", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList"], "stdout": "", "func_name": "listSum", "stack_to_render": [{"frame_id": 1, "encoded_locals": {"__return__": 6, "numbers": ["REF", 2], "rest": ["REF", 3], "f": 1}, "is_highlighted": true, "is_parent": false, "func_name": "listSum", "is_zombie": false, "parent_frame_id_list": [], "unique_hash": "listSum_f1", "ordered_varnames": ["numbers", "f", "rest", "__return__"]}], "globals": {"myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 6, "event": "return"}, {"ordered_globals": ["listSum", "myList", "total"], "stdout": "", "func_name": "", "stack_to_render": [], "globals": {"total": 6, "myList": ["REF", 2], "listSum": ["REF", 1]}, "heap": {"1": ["FUNCTION", "listSum(numbers)", null], "2": ["TUPLE", 1, ["REF", 3]], "3": ["TUPLE", 2, ["REF", 4]], "4": ["TUPLE", 3, null]}, "line": 9, "event": "return"}]}; + +// 2. When the HTML document finishes loading, populate the three divs +// (listSumDiv, hanoiDiv, happyDiv) with the visualizations +// corresponding to the respective traces. +$(document).ready(function() { + var listSumVisualizer = new ExecutionVisualizer('listSumDiv', listSumTrace, + {embeddedMode: true, + redrawAllConnectorsOnHeightChange: true, + editCodeBaseURL: 'http://pythontutor.com/visualize.html'}); +}); diff --git a/v3/screenshot-renderer/README.md b/v3/screenshot-renderer/README.md new file mode 100644 index 000000000..f867a4711 --- /dev/null +++ b/v3/screenshot-renderer/README.md @@ -0,0 +1,27 @@ +# Render static screenshots of Online Python Tutor visualizations + +Nov 2013: I've written a [script](render-opt-screenshots.js) that uses +[PhantomJS](http://phantomjs.org/) to create screenshots of Online Python Tutor +data structure visualizations as `.png` files. +These files can be included in a textbook or online tutorial. + +To run this script, first [install PhantomJS](http://phantomjs.org/download.html) and then run: + + phantomjs render-opt-screenshots.js test.py + +Doing so will pass `test.py` to Online Python Tutor (which requires online connectivity) +and render the state at each step `i` as a file named `test.py.step..png`. + +This example run generates 23 files, since there are 23 total execution steps. Here are some example files. + +Step 11 (`sample-screenshots/test.py.step.11.png`): + +![Step 11](sample-screenshots/test.py.step.11.png) + +Step 12 (`sample-screenshots/test.py.step.12.png`) + +![Step 12](sample-screenshots/test.py.step.12.png) + +Step 13 (`sample-screenshots/test.py.step.13.png`) + +![Step 13](sample-screenshots/test.py.step.13.png) diff --git a/v3/screenshot-renderer/render-opt-screenshots.js b/v3/screenshot-renderer/render-opt-screenshots.js new file mode 100644 index 000000000..e15337183 --- /dev/null +++ b/v3/screenshot-renderer/render-opt-screenshots.js @@ -0,0 +1,74 @@ +// Uses PhantomJS (phantomjs.org) to call Online Python Tutor to +// visualize and render screenshots of a Python file as .png images + +// Created by Philip Guo on 2013-11-23 + +// TODO: experiment with PDF rendering by calling page.render() with a +// .pdf file extension. We might need to mess around with viewport and +// page sizes. + + +var page = require('webpage').create(); +var system = require('system'); +var fs = require('fs'); + +if (system.args.length < 2) { + console.log('\nUsage:\n phantomjs render-opt-screenshots.js '); + console.log('\nVisualizes execution of a Python file at pythontutor.com and renders'); + console.log('the state diagram at each step i as .step.$i.png'); + phantom.exit(1); +} + +fn = system.args[1]; + +var pythonScript = fs.open(fn, 'r').read(); +console.log('Visualizing ...\n'); +console.log(pythonScript); +console.log('--- please wait ---'); + +var scriptEncoded = encodeURIComponent(pythonScript); + +// construct a URL with the script and options: +// (for instance, to run with Python 3, change the 'py=2' string to 'py=3') +var url = 'http://www.pythontutor.com/visualize.html#code=' + + scriptEncoded + + '&mode=display' + + '&cumulative=false' + + '&heapPrimitives=false' + + '&drawParentPointers=false' + + '&textReferences=false' + + '&showOnlyOutputs=false' + + '&py=2' + + '&curInstr=0'; + +page.open(url, function () { + // impose a slight delay to make sure the page loads completely before working + window.setTimeout(function () { + + // hide extraneous components and resize + page.evaluate(function() { + $("#footer").hide(); + $("#vizLayoutTdFirst").hide(); + $('#pyOutputPane').width($('table.visualizer').width()); + }); + + // grab maximum instruction from the page itself + var maxInstr = page.evaluate(function() { + return myVisualizer.curTrace.length - 1; + }); + + for (var i=0; i <= maxInstr; i++) { + page.evaluate(function(i) { + myVisualizer.curInstr = i; + myVisualizer.updateOutput(); + }, i /* pass i in here */); + var outfn = fn + '.step.' + (i+1) + '.png'; + page.render(outfn); + console.log('Rendered step ' + (i+1) + ' of ' + (maxInstr+1)); + } + + phantom.exit() + + }, 1000); +}); + diff --git a/v3/screenshot-renderer/sample-screenshots/test.py.step.11.png b/v3/screenshot-renderer/sample-screenshots/test.py.step.11.png new file mode 100644 index 000000000..cfeccf35b Binary files /dev/null and b/v3/screenshot-renderer/sample-screenshots/test.py.step.11.png differ diff --git a/v3/screenshot-renderer/sample-screenshots/test.py.step.12.png b/v3/screenshot-renderer/sample-screenshots/test.py.step.12.png new file mode 100644 index 000000000..658fb0759 Binary files /dev/null and b/v3/screenshot-renderer/sample-screenshots/test.py.step.12.png differ diff --git a/v3/screenshot-renderer/sample-screenshots/test.py.step.13.png b/v3/screenshot-renderer/sample-screenshots/test.py.step.13.png new file mode 100644 index 000000000..d6df58cc4 Binary files /dev/null and b/v3/screenshot-renderer/sample-screenshots/test.py.step.13.png differ diff --git a/v3/screenshot-renderer/test.py b/v3/screenshot-renderer/test.py new file mode 100644 index 000000000..9098319c1 --- /dev/null +++ b/v3/screenshot-renderer/test.py @@ -0,0 +1,23 @@ +x = [1, 2, 3] +y = [4, 5, 6] +z = y +y = x +x = z + +x = [1, 2, 3] # a different [1, 2, 3] list! +y = x +x.append(4) +y.append(5) +z = [1, 2, 3, 4, 5] # a different list! +x.append(6) +y = "hello" + + +def foo(lst): + lst.append("hello") + bar(lst) + +def bar(myLst): + print(myLst) + +foo(x) diff --git a/v3/selection_sort_watch.py b/v3/selection_sort_watch.py new file mode 100644 index 000000000..622f949ed --- /dev/null +++ b/v3/selection_sort_watch.py @@ -0,0 +1,15 @@ +# created by Peter Norvig +from watch_module import watchfn, watchedlist + +# The decorator here says that the 0th positional argument should be a list; +# we will watch it, and the locals named i, mini, and min_index +@watchfn((watchedlist, 'i mini min_index')) +def selection_sort(A): + for i in range(len(A)): #break + mini = min(A[i:]) + min_index = A[i:].index(mini) + i + if i != min_index: + A[min_index], A[i] = A[i], A[min_index] + return A + +print(selection_sort([3, 5, 2, 1, 8, 5, 9])) diff --git a/v3/tests/backend-tests/breakpoints.golden b/v3/tests/backend-tests/breakpoints.golden new file mode 100644 index 000000000..d7929e839 --- /dev/null +++ b/v3/tests/backend-tests/breakpoints.golden @@ -0,0 +1,1392 @@ +{ + "code": "# when '#break' is the last string in a line, then stop at only those lines\n\nx = [1, 2, 3]\ny = [4, 5, 6]\nz = y\ny = x\nx = z\n\nx = [1, 2, 3] # a different [1, 2, 3] list!\ny = x\nx.append(4) #break\ny.append(5)\nz = [1, 2, 3, 4, 5] # a different list! #break\nx.append(6)\ny.append(7)\ny = \"hello\" #break\n\n\ndef foo(lst): #break\n lst.append(\"hello\") #break\n bar(lst)\n\ndef bar(myLst):\n print(myLst) #break\n\nfoo(x)\nfoo(z)\n", + "trace": [ + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 4 + ], + "bar": [ + "REF", + 5 + ], + "z": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "FUNCTION", + "foo(lst)", + null + ], + "5": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/breakpoints.golden_py3 b/v3/tests/backend-tests/breakpoints.golden_py3 new file mode 100644 index 000000000..0d936f878 --- /dev/null +++ b/v3/tests/backend-tests/breakpoints.golden_py3 @@ -0,0 +1,1392 @@ +{ + "code": "# when '#break' is the last string in a line, then stop at only those lines\n\nx = [1, 2, 3]\ny = [4, 5, 6]\nz = y\ny = x\nx = z\n\nx = [1, 2, 3] # a different [1, 2, 3] list!\ny = x\nx.append(4) #break\ny.append(5)\nz = [1, 2, 3, 4, 5] # a different list! #break\nx.append(6)\ny.append(7)\ny = \"hello\" #break\n\n\ndef foo(lst): #break\n lst.append(\"hello\") #break\n bar(lst)\n\ndef bar(myLst):\n print(myLst) #break\n\nfoo(x)\nfoo(z)\n", + "trace": [ + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "2": [ + "LIST", + 4, + 5, + 6 + ], + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 3 + ], + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ] + }, + "line": 23, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5 + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 20, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "myLst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "myLst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f4", + "ordered_varnames": [ + "myLst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 24, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "foo", + "bar" + ], + "stdout": "[1, 2, 3, 4, 5, 6, 7, 'hello']\n[1, 2, 3, 4, 5, 'hello']\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": null, + "lst": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f3", + "ordered_varnames": [ + "lst", + "__return__" + ] + } + ], + "globals": { + "y": "hello", + "x": [ + "REF", + 3 + ], + "foo": [ + "REF", + 5 + ], + "bar": [ + "REF", + 6 + ], + "z": [ + "REF", + 4 + ] + }, + "heap": { + "3": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + 6, + 7, + "hello" + ], + "4": [ + "LIST", + 1, + 2, + 3, + 4, + 5, + "hello" + ], + "5": [ + "FUNCTION", + "foo(lst)", + null + ], + "6": [ + "FUNCTION", + "bar(myLst)", + null + ] + }, + "line": 21, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/breakpoints.txt b/v3/tests/backend-tests/breakpoints.txt new file mode 100644 index 000000000..338e45ad1 --- /dev/null +++ b/v3/tests/backend-tests/breakpoints.txt @@ -0,0 +1,27 @@ +# when '#break' is the last string in a line, then stop at only those lines + +x = [1, 2, 3] +y = [4, 5, 6] +z = y +y = x +x = z + +x = [1, 2, 3] # a different [1, 2, 3] list! +y = x +x.append(4) #break +y.append(5) +z = [1, 2, 3, 4, 5] # a different list! #break +x.append(6) +y.append(7) +y = "hello" #break + + +def foo(lst): #break + lst.append("hello") #break + bar(lst) + +def bar(myLst): + print(myLst) #break + +foo(x) +foo(z) diff --git a/v3/tests/backend-tests/callback-test.golden b/v3/tests/backend-tests/callback-test.golden new file mode 100644 index 000000000..5cd262b52 --- /dev/null +++ b/v3/tests/backend-tests/callback-test.golden @@ -0,0 +1,518 @@ +{ + "code": "# Tests to make sure that OPT tracks execution from user code (foo) to a\n# function in an external module (callback_module.callback_func) and\n# then back out to user code (bar). If all goes well, then both foo and\n# bar will be displayed on the stack. Ideally\n# callback_module.callback_func should also be on the stack, but since\n# OPT doesn't trace external code, it simply ignores that stack entry.\n\n# The incorrect behavior is NOT to trace inside of bar.\n\n\nimport callback_module\n\ndef foo():\n callback_module.callback_func(bar)\n\ndef bar():\n print(\"I'm in a bar!!!\")\n \nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "callback_module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 19, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/callback-test.golden_py3 b/v3/tests/backend-tests/callback-test.golden_py3 new file mode 100644 index 000000000..b0321dc55 --- /dev/null +++ b/v3/tests/backend-tests/callback-test.golden_py3 @@ -0,0 +1,518 @@ +{ + "code": "# Tests to make sure that OPT tracks execution from user code (foo) to a\n# function in an external module (callback_module.callback_func) and\n# then back out to user code (bar). If all goes well, then both foo and\n# bar will be displayed on the stack. Ideally\n# callback_module.callback_func should also be on the stack, but since\n# OPT doesn't trace external code, it simply ignores that stack entry.\n\n# The incorrect behavior is NOT to trace inside of bar.\n\n\nimport callback_module\n\ndef foo():\n callback_module.callback_func(bar)\n\ndef bar():\n print(\"I'm in a bar!!!\")\n \nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 16, + "event": "call" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "bar", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": false, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "bar", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "bar_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 14, + "event": "return" + }, + { + "ordered_globals": [ + "callback_module", + "foo", + "bar" + ], + "stdout": "I'm in a bar!!!\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "callback_module": [ + "REF", + 1 + ], + "bar": [ + "REF", + 3 + ], + "foo": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "foo()", + null + ], + "3": [ + "FUNCTION", + "bar()", + null + ] + }, + "line": 19, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/callback-test.txt b/v3/tests/backend-tests/callback-test.txt new file mode 100644 index 000000000..5faf076ff --- /dev/null +++ b/v3/tests/backend-tests/callback-test.txt @@ -0,0 +1,19 @@ +# Tests to make sure that OPT tracks execution from user code (foo) to a +# function in an external module (callback_module.callback_func) and +# then back out to user code (bar). If all goes well, then both foo and +# bar will be displayed on the stack. Ideally +# callback_module.callback_func should also be on the stack, but since +# OPT doesn't trace external code, it simply ignores that stack entry. + +# The incorrect behavior is NOT to trace inside of bar. + + +import callback_module + +def foo(): + callback_module.callback_func(bar) + +def bar(): + print("I'm in a bar!!!") + +foo() diff --git a/v3/tests/backend-tests/caught_exception_1.golden b/v3/tests/backend-tests/caught_exception_1.golden new file mode 100644 index 000000000..2418eb530 --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_1.golden @@ -0,0 +1,66 @@ +{ + "code": "try:\n x = 1 / 0\nexcept:\n print(\"DIVIDE BY ZERO\")\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "exception" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/caught_exception_1.golden_py3 b/v3/tests/backend-tests/caught_exception_1.golden_py3 new file mode 100644 index 000000000..b9d796a10 --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_1.golden_py3 @@ -0,0 +1,66 @@ +{ + "code": "try:\n x = 1 / 0\nexcept:\n print(\"DIVIDE BY ZERO\")\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "exception" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/caught_exception_1.txt b/v3/tests/backend-tests/caught_exception_1.txt new file mode 100644 index 000000000..ad24ed88b --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_1.txt @@ -0,0 +1,5 @@ +try: + x = 1 / 0 +except: + print("DIVIDE BY ZERO") + diff --git a/v3/tests/backend-tests/caught_exception_2.golden b/v3/tests/backend-tests/caught_exception_2.golden new file mode 100644 index 000000000..a1452b2f6 --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_2.golden @@ -0,0 +1,77 @@ +{ + "code": "# caught exception:\ntry:\n x = 1 / 0\nexcept:\n print(\"DIVIDE BY ZERO\")\n\n\n# uncaught:\nprint(y)\n\nprint(\"should not reach here\")\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "exception" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "exception_msg": "NameError: name 'y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/caught_exception_2.golden_py3 b/v3/tests/backend-tests/caught_exception_2.golden_py3 new file mode 100644 index 000000000..c0fb9edc3 --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_2.golden_py3 @@ -0,0 +1,77 @@ +{ + "code": "# caught exception:\ntry:\n x = 1 / 0\nexcept:\n print(\"DIVIDE BY ZERO\")\n\n\n# uncaught:\nprint(y)\n\nprint(\"should not reach here\")\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "exception" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "DIVIDE BY ZERO\n", + "exception_msg": "NameError: name 'y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 9, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/caught_exception_2.txt b/v3/tests/backend-tests/caught_exception_2.txt new file mode 100644 index 000000000..66768e16c --- /dev/null +++ b/v3/tests/backend-tests/caught_exception_2.txt @@ -0,0 +1,12 @@ +# caught exception: +try: + x = 1 / 0 +except: + print("DIVIDE BY ZERO") + + +# uncaught: +print(y) + +print("should not reach here") + diff --git a/v3/tests/backend-tests/circ_ref.golden b/v3/tests/backend-tests/circ_ref.golden new file mode 100644 index 000000000..ea8bc5c65 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref.golden @@ -0,0 +1,65 @@ +{ + "code": "# true circular reference\n\nx = [1, 2]\nx.append(x)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + [ + "REF", + 1 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref.golden_py3 b/v3/tests/backend-tests/circ_ref.golden_py3 new file mode 100644 index 000000000..ea8bc5c65 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref.golden_py3 @@ -0,0 +1,65 @@ +{ + "code": "# true circular reference\n\nx = [1, 2]\nx.append(x)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + [ + "REF", + 1 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref.txt b/v3/tests/backend-tests/circ_ref.txt new file mode 100644 index 000000000..7af6d5e6d --- /dev/null +++ b/v3/tests/backend-tests/circ_ref.txt @@ -0,0 +1,5 @@ +# true circular reference + +x = [1, 2] +x.append(x) + diff --git a/v3/tests/backend-tests/circ_ref_2.golden b/v3/tests/backend-tests/circ_ref_2.golden new file mode 100644 index 000000000..c1fb56894 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_2.golden @@ -0,0 +1,116 @@ +{ + "code": "# true indirect circular reference\n\nx = [1, 2]\ny = [3, 4, x]\nx.append(y)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ], + "2": [ + "LIST", + 3, + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 3, + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref_2.golden_py3 b/v3/tests/backend-tests/circ_ref_2.golden_py3 new file mode 100644 index 000000000..c1fb56894 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_2.golden_py3 @@ -0,0 +1,116 @@ +{ + "code": "# true indirect circular reference\n\nx = [1, 2]\ny = [3, 4, x]\nx.append(y)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ], + "2": [ + "LIST", + 3, + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + [ + "REF", + 2 + ] + ], + "2": [ + "LIST", + 3, + 4, + [ + "REF", + 1 + ] + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref_2.txt b/v3/tests/backend-tests/circ_ref_2.txt new file mode 100644 index 000000000..49502c869 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_2.txt @@ -0,0 +1,6 @@ +# true indirect circular reference + +x = [1, 2] +y = [3, 4, x] +x.append(y) + diff --git a/v3/tests/backend-tests/circ_ref_fake.golden b/v3/tests/backend-tests/circ_ref_fake.golden new file mode 100644 index 000000000..11e8e7d50 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_fake.golden @@ -0,0 +1,168 @@ +{ + "code": "# not a true circular reference\n\na = [10, 20, 30]\nb = a\nc = [10, 20, 30]\nd = (a, b, c)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "b": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "c": [ + "REF", + 2 + ], + "b": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b", + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "c": [ + "REF", + 2 + ], + "b": [ + "REF", + 1 + ], + "d": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref_fake.golden_py3 b/v3/tests/backend-tests/circ_ref_fake.golden_py3 new file mode 100644 index 000000000..11e8e7d50 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_fake.golden_py3 @@ -0,0 +1,168 @@ +{ + "code": "# not a true circular reference\n\na = [10, 20, 30]\nb = a\nc = [10, 20, 30]\nd = (a, b, c)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "b": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "c": [ + "REF", + 2 + ], + "b": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "a", + "b", + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ], + "c": [ + "REF", + 2 + ], + "b": [ + "REF", + 1 + ], + "d": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "LIST", + 10, + 20, + 30 + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "TUPLE", + [ + "REF", + 1 + ], + [ + "REF", + 1 + ], + [ + "REF", + 2 + ] + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/circ_ref_fake.txt b/v3/tests/backend-tests/circ_ref_fake.txt new file mode 100644 index 000000000..3bbcc94f2 --- /dev/null +++ b/v3/tests/backend-tests/circ_ref_fake.txt @@ -0,0 +1,7 @@ +# not a true circular reference + +a = [10, 20, 30] +b = a +c = [10, 20, 30] +d = (a, b, c) + diff --git a/v3/tests/backend-tests/class_test.golden b/v3/tests/backend-tests/class_test.golden new file mode 100644 index 000000000..5266c9782 --- /dev/null +++ b/v3/tests/backend-tests/class_test.golden @@ -0,0 +1,1444 @@ +{ + "code": "class Point:\n def __init__(self, x, y):\n self.x = x\n self.y = y\n \n def __str__(self):\n return \"(%d, %d)\" % (self.x, self.y)\n\np = Point(1, 2)\nprint(p)\np2 = Point(3, -4)\nprint(p2)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "(1, 2)", + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": "(3, -4)", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n(3, -4)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test.golden_py3 b/v3/tests/backend-tests/class_test.golden_py3 new file mode 100644 index 000000000..5266c9782 --- /dev/null +++ b/v3/tests/backend-tests/class_test.golden_py3 @@ -0,0 +1,1444 @@ +{ + "code": "class Point:\n def __init__(self, x, y):\n self.x = x\n self.y = y\n \n def __str__(self):\n return \"(%d, %d)\" % (self.x, self.y)\n\np = Point(1, 2)\nprint(p)\np2 = Point(3, -4)\nprint(p2)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "self": [ + "REF", + 4 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": "(1, 2)", + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p" + ], + "stdout": "(1, 2)\n", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "y": -4, + "x": 3, + "self": [ + "REF", + 5 + ], + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f3", + "ordered_varnames": [ + "self", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n", + "func_name": "__str__", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": "(3, -4)", + "self": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__str__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__str___f4", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "Point", + "p", + "p2" + ], + "stdout": "(1, 2)\n(3, -4)\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "p2": [ + "REF", + 5 + ], + "p": [ + "REF", + 4 + ], + "Point": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Point", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "__str__", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, x, y)", + null + ], + "3": [ + "FUNCTION", + "__str__(self)", + null + ], + "4": [ + "INSTANCE_PPRINT", + "Point", + "(1, 2)" + ], + "5": [ + "INSTANCE_PPRINT", + "Point", + "(3, -4)" + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test.txt b/v3/tests/backend-tests/class_test.txt new file mode 100644 index 000000000..77d89420a --- /dev/null +++ b/v3/tests/backend-tests/class_test.txt @@ -0,0 +1,13 @@ +class Point: + def __init__(self, x, y): + self.x = x + self.y = y + + def __str__(self): + return "(%d, %d)" % (self.x, self.y) + +p = Point(1, 2) +print(p) +p2 = Point(3, -4) +print(p2) + diff --git a/v3/tests/backend-tests/class_test_2.golden b/v3/tests/backend-tests/class_test_2.golden new file mode 100644 index 000000000..83ed6755e --- /dev/null +++ b/v3/tests/backend-tests/class_test_2.golden @@ -0,0 +1,186 @@ +{ + "code": "class Outer():\n pass\n\no = Outer()\no.a = 5\no.b = \"Hi\"\nprint(o)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ], + [ + "b", + "Hi" + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "<__main__.Outer instance at 0xADDR>\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ], + [ + "b", + "Hi" + ] + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test_2.golden_py3 b/v3/tests/backend-tests/class_test_2.golden_py3 new file mode 100644 index 000000000..55293b1d5 --- /dev/null +++ b/v3/tests/backend-tests/class_test_2.golden_py3 @@ -0,0 +1,186 @@ +{ + "code": "class Outer():\n pass\n\no = Outer()\no.a = 5\no.b = \"Hi\"\nprint(o)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ], + [ + "b", + "Hi" + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Outer", + "o" + ], + "stdout": "<__main__.Outer object at 0xADDR>\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Outer": [ + "REF", + 1 + ], + "o": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Outer", + [] + ], + "2": [ + "INSTANCE", + "Outer", + [ + "a", + 5 + ], + [ + "b", + "Hi" + ] + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test_2.txt b/v3/tests/backend-tests/class_test_2.txt new file mode 100644 index 000000000..c6532c1b1 --- /dev/null +++ b/v3/tests/backend-tests/class_test_2.txt @@ -0,0 +1,8 @@ +class Outer(): + pass + +o = Outer() +o.a = 5 +o.b = "Hi" +print(o) + diff --git a/v3/tests/backend-tests/class_test_3.golden b/v3/tests/backend-tests/class_test_3.golden new file mode 100644 index 000000000..314304c78 --- /dev/null +++ b/v3/tests/backend-tests/class_test_3.golden @@ -0,0 +1,470 @@ +{ + "code": "class Staff601:\n course = '6.01'\n building = 34\n room = 501\n\npat = Staff601()\nprint(pat.course)\n\npat.name = 'Pat'\npat.age = 60\npat.role = 'Professor'\n\nprint(pat.building)\npat.building = 32\nprint(pat.building)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test_3.golden_py3 b/v3/tests/backend-tests/class_test_3.golden_py3 new file mode 100644 index 000000000..314304c78 --- /dev/null +++ b/v3/tests/backend-tests/class_test_3.golden_py3 @@ -0,0 +1,470 @@ +{ + "code": "class Staff601:\n course = '6.01'\n building = 34\n room = 501\n\npat = Staff601()\nprint(pat.course)\n\npat.name = 'Pat'\npat.age = 60\npat.role = 'Professor'\n\nprint(pat.building)\npat.building = 32\nprint(pat.building)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "name", + "Pat" + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "Staff601", + "pat" + ], + "stdout": "6.01\n34\n32\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "Staff601": [ + "REF", + 1 + ], + "pat": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "CLASS", + "Staff601", + [], + [ + "building", + 34 + ], + [ + "course", + "6.01" + ], + [ + "room", + 501 + ] + ], + "2": [ + "INSTANCE", + "Staff601", + [ + "age", + 60 + ], + [ + "building", + 32 + ], + [ + "name", + "Pat" + ], + [ + "role", + "Professor" + ] + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/class_test_3.txt b/v3/tests/backend-tests/class_test_3.txt new file mode 100644 index 000000000..55c604882 --- /dev/null +++ b/v3/tests/backend-tests/class_test_3.txt @@ -0,0 +1,16 @@ +class Staff601: + course = '6.01' + building = 34 + room = 501 + +pat = Staff601() +print(pat.course) + +pat.name = 'Pat' +pat.age = 60 +pat.role = 'Professor' + +print(pat.building) +pat.building = 32 +print(pat.building) + diff --git a/v3/tests/backend-tests/closure-shadow-same-name.golden b/v3/tests/backend-tests/closure-shadow-same-name.golden new file mode 100644 index 000000000..5f17e5c8b --- /dev/null +++ b/v3/tests/backend-tests/closure-shadow-same-name.golden @@ -0,0 +1,505 @@ +{ + "code": "# some of the params in f and g have identical names AND values,\n# so make sure they're all displayed properly\ndef f(x, y, z):\n def g(x, y):\n return x\n return g(x, y)\n\nf(1, 2, 3)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y", + "z" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y", + "z" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "y", + "z", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/closure-shadow-same-name.golden_py3 b/v3/tests/backend-tests/closure-shadow-same-name.golden_py3 new file mode 100644 index 000000000..5f17e5c8b --- /dev/null +++ b/v3/tests/backend-tests/closure-shadow-same-name.golden_py3 @@ -0,0 +1,505 @@ +{ + "code": "# some of the params in f and g have identical names AND values,\n# so make sure they're all displayed properly\ndef f(x, y, z):\n def g(x, y):\n return x\n return g(x, y)\n\nf(1, 2, 3)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y", + "z" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y", + "z" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "z", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 1, + "z": 3, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "y", + "z", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y, z)", + null + ], + "2": [ + "FUNCTION", + "g(x, y)", + 1 + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/closure-shadow-same-name.txt b/v3/tests/backend-tests/closure-shadow-same-name.txt new file mode 100644 index 000000000..13d20e618 --- /dev/null +++ b/v3/tests/backend-tests/closure-shadow-same-name.txt @@ -0,0 +1,8 @@ +# some of the params in f and g have identical names AND values, +# so make sure they're all displayed properly +def f(x, y, z): + def g(x, y): + return x + return g(x, y) + +f(1, 2, 3) diff --git a/v3/tests/backend-tests/cmodule.golden b/v3/tests/backend-tests/cmodule.golden new file mode 100644 index 000000000..e29fbc456 --- /dev/null +++ b/v3/tests/backend-tests/cmodule.golden @@ -0,0 +1,37 @@ +{ + "code": "# importing some C-ish module ...\n# make sure this doesn't crash in Python 2 or 3\nfrom datetime import datetime_CAPI\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "datetime_CAPI" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "datetime_CAPI": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "PyCapsule", + "" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/cmodule.golden_py3 b/v3/tests/backend-tests/cmodule.golden_py3 new file mode 100644 index 000000000..562a7996a --- /dev/null +++ b/v3/tests/backend-tests/cmodule.golden_py3 @@ -0,0 +1,37 @@ +{ + "code": "# importing some C-ish module ...\n# make sure this doesn't crash in Python 2 or 3\nfrom datetime import datetime_CAPI\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "datetime_CAPI" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "datetime_CAPI": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "PyCapsule" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/cmodule.txt b/v3/tests/backend-tests/cmodule.txt new file mode 100644 index 000000000..53bb90850 --- /dev/null +++ b/v3/tests/backend-tests/cmodule.txt @@ -0,0 +1,3 @@ +# importing some C-ish module ... +# make sure this doesn't crash in Python 2 or 3 +from datetime import datetime_CAPI diff --git a/v3/tests/backend-tests/data_test.golden b/v3/tests/backend-tests/data_test.golden new file mode 100644 index 000000000..68e3251eb --- /dev/null +++ b/v3/tests/backend-tests/data_test.golden @@ -0,0 +1,213 @@ +{ + "code": "x = ('hello', 'world', 1, 2, 3, 'goodbye')\ny = list(x)\nz = set(x)\nw = {\"joe\" : 5, \"mindy\" : 6, \"jack\" : 7}\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "3": [ + "SET", + 1, + 2, + 3, + "goodbye", + "world", + "hello" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "w" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 3 + ], + "w": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "3": [ + "SET", + 1, + 2, + 3, + "goodbye", + "world", + "hello" + ], + "4": [ + "DICT", + [ + "mindy", + 6 + ], + [ + "joe", + 5 + ], + [ + "jack", + 7 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/data_test.golden_py3 b/v3/tests/backend-tests/data_test.golden_py3 new file mode 100644 index 000000000..68e3251eb --- /dev/null +++ b/v3/tests/backend-tests/data_test.golden_py3 @@ -0,0 +1,213 @@ +{ + "code": "x = ('hello', 'world', 1, 2, 3, 'goodbye')\ny = list(x)\nz = set(x)\nw = {\"joe\" : 5, \"mindy\" : 6, \"jack\" : 7}\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 3 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "3": [ + "SET", + 1, + 2, + 3, + "goodbye", + "world", + "hello" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "w" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 3 + ], + "w": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "TUPLE", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "2": [ + "LIST", + "hello", + "world", + 1, + 2, + 3, + "goodbye" + ], + "3": [ + "SET", + 1, + 2, + 3, + "goodbye", + "world", + "hello" + ], + "4": [ + "DICT", + [ + "mindy", + 6 + ], + [ + "joe", + 5 + ], + [ + "jack", + 7 + ] + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/data_test.txt b/v3/tests/backend-tests/data_test.txt new file mode 100644 index 000000000..664717167 --- /dev/null +++ b/v3/tests/backend-tests/data_test.txt @@ -0,0 +1,4 @@ +x = ('hello', 'world', 1, 2, 3, 'goodbye') +y = list(x) +z = set(x) +w = {"joe" : 5, "mindy" : 6, "jack" : 7} diff --git a/v3/tests/backend-tests/dict_error.golden b/v3/tests/backend-tests/dict_error.golden new file mode 100644 index 000000000..1d65cbe41 --- /dev/null +++ b/v3/tests/backend-tests/dict_error.golden @@ -0,0 +1,207 @@ +{ + "code": "def foo():\n local_y[('tup', 'le')] = set([1, 2, 3])\n\nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "exception_msg": "NameError: global name 'local_y' is not defined", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "exception" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "exception_msg": "NameError: global name 'local_y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/dict_error.golden_py3 b/v3/tests/backend-tests/dict_error.golden_py3 new file mode 100644 index 000000000..1d65cbe41 --- /dev/null +++ b/v3/tests/backend-tests/dict_error.golden_py3 @@ -0,0 +1,207 @@ +{ + "code": "def foo():\n local_y[('tup', 'le')] = set([1, 2, 3])\n\nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "exception_msg": "NameError: global name 'local_y' is not defined", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "exception" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "foo" + ], + "stdout": "", + "exception_msg": "NameError: global name 'local_y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "foo": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/dict_error.txt b/v3/tests/backend-tests/dict_error.txt new file mode 100644 index 000000000..fb6ed90ee --- /dev/null +++ b/v3/tests/backend-tests/dict_error.txt @@ -0,0 +1,4 @@ +def foo(): + local_y[('tup', 'le')] = set([1, 2, 3]) + +foo() diff --git a/v3/tests/backend-tests/dict_test.golden b/v3/tests/backend-tests/dict_test.golden new file mode 100644 index 000000000..0c05ae2da --- /dev/null +++ b/v3/tests/backend-tests/dict_test.golden @@ -0,0 +1,730 @@ +{ + "code": "x = {1 : 2}\nx[('tup', 'le')] = set([1, 2, 3])\n\ndef foo():\n local_x = {1 : 2}\n local_y = {}\n local_y[('tup', 'le')] = set([1, 2, 3])\n print(\"hello\", list(local_y.values()))\n\nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT", + [ + [ + "REF", + 7 + ], + [ + "REF", + 8 + ] + ] + ], + "7": [ + "TUPLE", + "tup", + "le" + ], + "8": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "('hello', [set([1, 2, 3])])\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT", + [ + [ + "REF", + 7 + ], + [ + "REF", + 8 + ] + ] + ], + "7": [ + "TUPLE", + "tup", + "le" + ], + "8": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "('hello', [set([1, 2, 3])])\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/dict_test.golden_py3 b/v3/tests/backend-tests/dict_test.golden_py3 new file mode 100644 index 000000000..cb382cbf5 --- /dev/null +++ b/v3/tests/backend-tests/dict_test.golden_py3 @@ -0,0 +1,730 @@ +{ + "code": "x = {1 : 2}\nx[('tup', 'le')] = set([1, 2, 3])\n\ndef foo():\n local_x = {1 : 2}\n local_y = {}\n local_y[('tup', 'le')] = set([1, 2, 3])\n print(\"hello\", list(local_y.values()))\n\nfoo()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ] + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT", + [ + [ + "REF", + 7 + ], + [ + "REF", + 8 + ] + ] + ], + "7": [ + "TUPLE", + "tup", + "le" + ], + "8": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "hello [{1, 2, 3}]\n", + "func_name": "foo", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "local_y": [ + "REF", + 6 + ], + "local_x": [ + "REF", + 5 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "foo", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "foo_f1", + "ordered_varnames": [ + "local_x", + "local_y", + "__return__" + ] + } + ], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ], + "5": [ + "DICT", + [ + 1, + 2 + ] + ], + "6": [ + "DICT", + [ + [ + "REF", + 7 + ], + [ + "REF", + 8 + ] + ] + ], + "7": [ + "TUPLE", + "tup", + "le" + ], + "8": [ + "SET", + 1, + 2, + 3 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "x", + "foo" + ], + "stdout": "hello [{1, 2, 3}]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "foo": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "DICT", + [ + 1, + 2 + ], + [ + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + ], + "2": [ + "TUPLE", + "tup", + "le" + ], + "3": [ + "SET", + 1, + 2, + 3 + ], + "4": [ + "FUNCTION", + "foo()", + null + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/dict_test.txt b/v3/tests/backend-tests/dict_test.txt new file mode 100644 index 000000000..15294a473 --- /dev/null +++ b/v3/tests/backend-tests/dict_test.txt @@ -0,0 +1,10 @@ +x = {1 : 2} +x[('tup', 'le')] = set([1, 2, 3]) + +def foo(): + local_x = {1 : 2} + local_y = {} + local_y[('tup', 'le')] = set([1, 2, 3]) + print("hello", list(local_y.values())) + +foo() diff --git a/v3/tests/backend-tests/exec_test.golden b/v3/tests/backend-tests/exec_test.golden new file mode 100644 index 000000000..a6a43ad21 --- /dev/null +++ b/v3/tests/backend-tests/exec_test.golden @@ -0,0 +1,67 @@ +{ + "code": "exec(\"import os; os.system('echo security breach')\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ImportError: os not supported", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "exception" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "return" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ImportError: os not supported", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/exec_test.golden_py3 b/v3/tests/backend-tests/exec_test.golden_py3 new file mode 100644 index 000000000..f8b44bb26 --- /dev/null +++ b/v3/tests/backend-tests/exec_test.golden_py3 @@ -0,0 +1,26 @@ +{ + "code": "exec(\"import os; os.system('echo security breach')\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "NameError: name 'exec' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/exec_test.txt b/v3/tests/backend-tests/exec_test.txt new file mode 100644 index 000000000..7c8c740c7 --- /dev/null +++ b/v3/tests/backend-tests/exec_test.txt @@ -0,0 +1 @@ +exec("import os; os.system('echo security breach')") diff --git a/v3/tests/backend-tests/func_exception.golden b/v3/tests/backend-tests/func_exception.golden new file mode 100644 index 000000000..08975e74f --- /dev/null +++ b/v3/tests/backend-tests/func_exception.golden @@ -0,0 +1,270 @@ +{ + "code": "def g(x,y):\n print(\"In g\")\n ans = x/y\n return ans\n \ng(5, 0)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "exception" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "exception_msg": "ZeroDivisionError: integer division or modulo by zero", + "func_name": "", + "stack_to_render": [], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 6, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/func_exception.golden_py3 b/v3/tests/backend-tests/func_exception.golden_py3 new file mode 100644 index 000000000..537097da9 --- /dev/null +++ b/v3/tests/backend-tests/func_exception.golden_py3 @@ -0,0 +1,270 @@ +{ + "code": "def g(x,y):\n print(\"In g\")\n ans = x/y\n return ans\n \ng(5, 0)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "exception" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 0, + "x": 5, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f1", + "ordered_varnames": [ + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "g" + ], + "stdout": "In g\n", + "exception_msg": "ZeroDivisionError: division by zero", + "func_name": "", + "stack_to_render": [], + "globals": { + "g": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "g(x, y)", + null + ] + }, + "line": 6, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/func_exception.txt b/v3/tests/backend-tests/func_exception.txt new file mode 100644 index 000000000..991a8253d --- /dev/null +++ b/v3/tests/backend-tests/func_exception.txt @@ -0,0 +1,7 @@ +def g(x,y): + print("In g") + ans = x/y + return ans + +g(5, 0) + diff --git a/v3/tests/backend-tests/generator_test.golden b/v3/tests/backend-tests/generator_test.golden new file mode 100644 index 000000000..845c6114f --- /dev/null +++ b/v3/tests/backend-tests/generator_test.golden @@ -0,0 +1,100 @@ +{ + "code": "x = (e for e in range(10))\ny = x\nz = (e for e in range(10))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "generator", + " at 0xADDR>" + ], + "2": [ + "generator", + " at 0xADDR>" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/generator_test.golden_py3 b/v3/tests/backend-tests/generator_test.golden_py3 new file mode 100644 index 000000000..9a61882ef --- /dev/null +++ b/v3/tests/backend-tests/generator_test.golden_py3 @@ -0,0 +1,100 @@ +{ + "code": "x = (e for e in range(10))\ny = x\nz = (e for e in range(10))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 1 + ], + "x": [ + "REF", + 1 + ], + "z": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "generator" + ], + "2": [ + "INSTANCE", + "generator" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/generator_test.txt b/v3/tests/backend-tests/generator_test.txt new file mode 100644 index 000000000..f17609e64 --- /dev/null +++ b/v3/tests/backend-tests/generator_test.txt @@ -0,0 +1,3 @@ +x = (e for e in range(10)) +y = x +z = (e for e in range(10)) diff --git a/v3/tests/backend-tests/generator_use_test.golden b/v3/tests/backend-tests/generator_use_test.golden new file mode 100644 index 000000000..34e21934f --- /dev/null +++ b/v3/tests/backend-tests/generator_use_test.golden @@ -0,0 +1,10982 @@ +{ + "code": "def gen_odds():\n x = 1\n while True:\n yield x\n x += 2\n\nfor i in gen_odds():\n print(i)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": 5, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": 7, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": 9, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": 11, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "__return__": 13, + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "__return__": 15, + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "__return__": 17, + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "__return__": 19, + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "__return__": 21, + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "__return__": 23, + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "__return__": 25, + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "__return__": 27, + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "__return__": 29, + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "__return__": 31, + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "__return__": 33, + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "__return__": 35, + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "__return__": 37, + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "__return__": 39, + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "__return__": 41, + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "__return__": 43, + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "__return__": 45, + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "__return__": 47, + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "__return__": 49, + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "__return__": 51, + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "__return__": 53, + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "__return__": 55, + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "__return__": 57, + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "__return__": 59, + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "__return__": 61, + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "__return__": 63, + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "__return__": 65, + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "__return__": 67, + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "__return__": 69, + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "__return__": 71, + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "__return__": 73, + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "__return__": 75, + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "__return__": 77, + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "__return__": 79, + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "__return__": 81, + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "__return__": 83, + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/generator_use_test.golden_py3 b/v3/tests/backend-tests/generator_use_test.golden_py3 new file mode 100644 index 000000000..5bb2c43a8 --- /dev/null +++ b/v3/tests/backend-tests/generator_use_test.golden_py3 @@ -0,0 +1,10772 @@ +{ + "code": "def gen_odds():\n x = 1\n while True:\n yield x\n x += 2\n\nfor i in gen_odds():\n print(i)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds" + ], + "stdout": "", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f1", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": 3, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 1, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 3, + "encoded_locals": { + "__return__": 5, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 3, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 4, + "encoded_locals": { + "__return__": 7, + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 5, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 7 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 5, + "encoded_locals": { + "__return__": 9, + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 7, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 6, + "encoded_locals": { + "__return__": 11, + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 9, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 11 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 7, + "encoded_locals": { + "__return__": 13, + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 11, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 8, + "encoded_locals": { + "__return__": 15, + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 13, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 9, + "encoded_locals": { + "__return__": 17, + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 15, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 17 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 10, + "encoded_locals": { + "__return__": 19, + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 17, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 19 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 11, + "encoded_locals": { + "__return__": 21, + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 19, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 21 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 12, + "encoded_locals": { + "__return__": 23, + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 21, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 23 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 13, + "encoded_locals": { + "__return__": 25, + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f13", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 23, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 25 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 14, + "encoded_locals": { + "__return__": 27, + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f14", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 25, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 27 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 15, + "encoded_locals": { + "__return__": 29, + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f15", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 27, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 29 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 16, + "encoded_locals": { + "__return__": 31, + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f16", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 29, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 31 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 17, + "encoded_locals": { + "__return__": 33, + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f17", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 31, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 33 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 18, + "encoded_locals": { + "__return__": 35, + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f18", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 33, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 35 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 19, + "encoded_locals": { + "__return__": 37, + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f19", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 35, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 37 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 20, + "encoded_locals": { + "__return__": 39, + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f20", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 37, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 39 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 21, + "encoded_locals": { + "__return__": 41, + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f21", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 39, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 41 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 22, + "encoded_locals": { + "__return__": 43, + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f22", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 41, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 43 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 23, + "encoded_locals": { + "__return__": 45, + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f23", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 43, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 45 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 24, + "encoded_locals": { + "__return__": 47, + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f24", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 45, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 47 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 25, + "encoded_locals": { + "__return__": 49, + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f25", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 47, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 49 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 26, + "encoded_locals": { + "__return__": 51, + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f26", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 49, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 51 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 27, + "encoded_locals": { + "__return__": 53, + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f27", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 51, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 53 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 28, + "encoded_locals": { + "__return__": 55, + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f28", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 53, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 55 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 29, + "encoded_locals": { + "__return__": 57, + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f29", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 55, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 57 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 30, + "encoded_locals": { + "__return__": 59, + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f30", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 57, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 59 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 31, + "encoded_locals": { + "__return__": 61, + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f31", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 59, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 61 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 32, + "encoded_locals": { + "__return__": 63, + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f32", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 61, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 63 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 33, + "encoded_locals": { + "__return__": 65, + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f33", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 63, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 34, + "encoded_locals": { + "__return__": 67, + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f34", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 65, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 67 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 35, + "encoded_locals": { + "__return__": 69, + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f35", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 67, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 69 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 36, + "encoded_locals": { + "__return__": 71, + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f36", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 69, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 71 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 37, + "encoded_locals": { + "__return__": 73, + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f37", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 71, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 73 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 38, + "encoded_locals": { + "__return__": 75, + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f38", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 73, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 75 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 39, + "encoded_locals": { + "__return__": 77, + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f39", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 75, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 77 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 40, + "encoded_locals": { + "__return__": 79, + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f40", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 77, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 79 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 41, + "encoded_locals": { + "__return__": 81, + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f41", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 79, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 81 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 42, + "encoded_locals": { + "__return__": 83, + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f42", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 81, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 83 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 43, + "encoded_locals": { + "__return__": 85, + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f43", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 83, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 44, + "encoded_locals": { + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f44", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 44, + "encoded_locals": { + "x": 85 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f44", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 44, + "encoded_locals": { + "x": 87 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f44", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 44, + "encoded_locals": { + "__return__": 87, + "x": 87 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f44", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 85, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 45, + "encoded_locals": { + "x": 87 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f45", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 45, + "encoded_locals": { + "x": 87 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f45", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 45, + "encoded_locals": { + "x": 89 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f45", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 45, + "encoded_locals": { + "__return__": 89, + "x": 89 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f45", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 87, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 46, + "encoded_locals": { + "x": 89 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f46", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 46, + "encoded_locals": { + "x": 89 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f46", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 46, + "encoded_locals": { + "x": 91 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f46", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 46, + "encoded_locals": { + "__return__": 91, + "x": 91 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f46", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 89, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 47, + "encoded_locals": { + "x": 91 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f47", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 47, + "encoded_locals": { + "x": 91 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f47", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 47, + "encoded_locals": { + "x": 93 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f47", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 47, + "encoded_locals": { + "__return__": 93, + "x": 93 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f47", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 91, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 48, + "encoded_locals": { + "x": 93 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f48", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 48, + "encoded_locals": { + "x": 93 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f48", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 48, + "encoded_locals": { + "x": 95 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f48", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 48, + "encoded_locals": { + "__return__": 95, + "x": 95 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f48", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 93, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 49, + "encoded_locals": { + "x": 95 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f49", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 49, + "encoded_locals": { + "x": 95 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f49", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 49, + "encoded_locals": { + "x": 97 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f49", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 49, + "encoded_locals": { + "__return__": 97, + "x": 97 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f49", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "i": 95, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 97, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n97\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 97, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n97\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 50, + "encoded_locals": { + "x": 97 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f50", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 97, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n97\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 50, + "encoded_locals": { + "x": 97 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f50", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 97, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "gen_odds", + "i" + ], + "stdout": "1\n3\n5\n7\n9\n11\n13\n15\n17\n19\n21\n23\n25\n27\n29\n31\n33\n35\n37\n39\n41\n43\n45\n47\n49\n51\n53\n55\n57\n59\n61\n63\n65\n67\n69\n71\n73\n75\n77\n79\n81\n83\n85\n87\n89\n91\n93\n95\n97\n", + "func_name": "gen_odds", + "stack_to_render": [ + { + "frame_id": 50, + "encoded_locals": { + "x": 99 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "gen_odds", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "gen_odds_f50", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "i": 97, + "gen_odds": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "gen_odds()", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/generator_use_test.txt b/v3/tests/backend-tests/generator_use_test.txt new file mode 100644 index 000000000..d4aee1010 --- /dev/null +++ b/v3/tests/backend-tests/generator_use_test.txt @@ -0,0 +1,9 @@ +def gen_odds(): + x = 1 + while True: + yield x + x += 2 + +for i in gen_odds(): + print(i) + diff --git a/v3/tests/backend-tests/graphviz-basic.golden b/v3/tests/backend-tests/graphviz-basic.golden new file mode 100644 index 000000000..432600a08 --- /dev/null +++ b/v3/tests/backend-tests/graphviz-basic.golden @@ -0,0 +1,323 @@ +{ + "code": "from GChartWrapper import GraphViz\nimport html_module\n\nDOTFILE = '''\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n'''\n\ng = GraphViz(DOTFILE)\n\nhtml_module.display_img(str(g))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "html_module": [ + "REF", + 4 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "module", + "html_module" + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "module", + "html_module" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE", + "g" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "g": [ + "REF", + 5 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "module", + "html_module" + ], + "5": [ + "INSTANCE_PPRINT", + "GraphViz", + "http://chart.apis.google.com/chart?cht=gv&chl=%0A/%2A+balanced+tree+hack+from+http://www.graphviz.org/content/FaqBalanceTree+%2A/%0Adigraph+G+%7B%0A++a+%5Bcolor=red,penwidth=2%5D%0A++a+-%3E+b0%0A++xb+%5Blabel=%22%22,width=.1,style=invis%5D%0A++a+-%3E+xb+%5Bstyle=invis%5D%0A++a+-%3E+b1%0A%0A++%7Brank=same+b0+-%3E+xb+-%3E+b1+%5Bstyle=invis%5D%7D%0A%0A++b0+-%3E+c0%0A++xc+%5Blabel=%22%22,width=.1,style=invis%5D%0A++b0+-%3E+xc+%5Bstyle=invis%5D%0A++b0+-%3E+c1%0A%0A++%7Brank=same+c0+-%3E+xc+-%3E+c1+%5Bstyle=invis%5D%7D%0A%7D%0A" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE", + "g" + ], + "html_output": "", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "g": [ + "REF", + 5 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "module", + "html_module" + ], + "5": [ + "INSTANCE_PPRINT", + "GraphViz", + "http://chart.apis.google.com/chart?cht=gv&chl=%0A/%2A+balanced+tree+hack+from+http://www.graphviz.org/content/FaqBalanceTree+%2A/%0Adigraph+G+%7B%0A++a+%5Bcolor=red,penwidth=2%5D%0A++a+-%3E+b0%0A++xb+%5Blabel=%22%22,width=.1,style=invis%5D%0A++a+-%3E+xb+%5Bstyle=invis%5D%0A++a+-%3E+b1%0A%0A++%7Brank=same+b0+-%3E+xb+-%3E+b1+%5Bstyle=invis%5D%7D%0A%0A++b0+-%3E+c0%0A++xc+%5Blabel=%22%22,width=.1,style=invis%5D%0A++b0+-%3E+xc+%5Bstyle=invis%5D%0A++b0+-%3E+c1%0A%0A++%7Brank=same+c0+-%3E+xc+-%3E+c1+%5Bstyle=invis%5D%7D%0A%7D%0A" + ] + }, + "line": 26, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/graphviz-basic.golden_py3 b/v3/tests/backend-tests/graphviz-basic.golden_py3 new file mode 100644 index 000000000..f73589709 --- /dev/null +++ b/v3/tests/backend-tests/graphviz-basic.golden_py3 @@ -0,0 +1,323 @@ +{ + "code": "from GChartWrapper import GraphViz\nimport html_module\n\nDOTFILE = '''\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n'''\n\ng = GraphViz(DOTFILE)\n\nhtml_module.display_img(str(g))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "html_module": [ + "REF", + 4 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "INSTANCE", + "module" + ] + }, + "line": 22, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "INSTANCE", + "module" + ] + }, + "line": 24, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE", + "g" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "g": [ + "REF", + 5 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "INSTANCE", + "module" + ], + "5": [ + "INSTANCE_PPRINT", + "GraphViz", + "http://chart.apis.google.com/chart?cht=gv&chl=%0A/%2A+balanced+tree+hack+from+http://www.graphviz.org/content/FaqBalanceTree+%2A/%0Adigraph+G+%7B%0A++a+%5Bcolor=red,penwidth=2%5D%0A++a+-%3E+b0%0A++xb+%5Blabel=%22%22,width=.1,style=invis%5D%0A++a+-%3E+xb+%5Bstyle=invis%5D%0A++a+-%3E+b1%0A%0A++%7Brank=same+b0+-%3E+xb+-%3E+b1+%5Bstyle=invis%5D%7D%0A%0A++b0+-%3E+c0%0A++xc+%5Blabel=%22%22,width=.1,style=invis%5D%0A++b0+-%3E+xc+%5Bstyle=invis%5D%0A++b0+-%3E+c1%0A%0A++%7Brank=same+c0+-%3E+xc+-%3E+c1+%5Bstyle=invis%5D%7D%0A%7D%0A" + ] + }, + "line": 26, + "event": "step_line" + }, + { + "ordered_globals": [ + "GraphViz", + "html_module", + "DOTFILE", + "g" + ], + "html_output": "", + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "DOTFILE": "\n/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */\ndigraph G {\n a [color=red,penwidth=2]\n a -> b0\n xb [label=\"\",width=.1,style=invis]\n a -> xb [style=invis]\n a -> b1\n\n {rank=same b0 -> xb -> b1 [style=invis]}\n\n b0 -> c0\n xc [label=\"\",width=.1,style=invis]\n b0 -> xc [style=invis]\n b0 -> c1\n\n {rank=same c0 -> xc -> c1 [style=invis]}\n}\n", + "html_module": [ + "REF", + 4 + ], + "g": [ + "REF", + 5 + ], + "GraphViz": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "GraphViz", + [ + "GChart" + ], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "render", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self, dot_string)", + null + ], + "3": [ + "FUNCTION", + "render(self)", + null + ], + "4": [ + "INSTANCE", + "module" + ], + "5": [ + "INSTANCE_PPRINT", + "GraphViz", + "http://chart.apis.google.com/chart?cht=gv&chl=%0A/%2A+balanced+tree+hack+from+http://www.graphviz.org/content/FaqBalanceTree+%2A/%0Adigraph+G+%7B%0A++a+%5Bcolor=red,penwidth=2%5D%0A++a+-%3E+b0%0A++xb+%5Blabel=%22%22,width=.1,style=invis%5D%0A++a+-%3E+xb+%5Bstyle=invis%5D%0A++a+-%3E+b1%0A%0A++%7Brank=same+b0+-%3E+xb+-%3E+b1+%5Bstyle=invis%5D%7D%0A%0A++b0+-%3E+c0%0A++xc+%5Blabel=%22%22,width=.1,style=invis%5D%0A++b0+-%3E+xc+%5Bstyle=invis%5D%0A++b0+-%3E+c1%0A%0A++%7Brank=same+c0+-%3E+xc+-%3E+c1+%5Bstyle=invis%5D%7D%0A%7D%0A" + ] + }, + "line": 26, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/graphviz-basic.txt b/v3/tests/backend-tests/graphviz-basic.txt new file mode 100644 index 000000000..ce132c9a5 --- /dev/null +++ b/v3/tests/backend-tests/graphviz-basic.txt @@ -0,0 +1,26 @@ +from GChartWrapper import GraphViz +import html_module + +DOTFILE = ''' +/* balanced tree hack from http://www.graphviz.org/content/FaqBalanceTree */ +digraph G { + a [color=red,penwidth=2] + a -> b0 + xb [label="",width=.1,style=invis] + a -> xb [style=invis] + a -> b1 + + {rank=same b0 -> xb -> b1 [style=invis]} + + b0 -> c0 + xc [label="",width=.1,style=invis] + b0 -> xc [style=invis] + b0 -> c1 + + {rank=same c0 -> xc -> c1 [style=invis]} +} +''' + +g = GraphViz(DOTFILE) + +html_module.display_img(str(g)) diff --git a/v3/tests/backend-tests/import_error.golden b/v3/tests/backend-tests/import_error.golden new file mode 100644 index 000000000..96e9fa679 --- /dev/null +++ b/v3/tests/backend-tests/import_error.golden @@ -0,0 +1,26 @@ +{ + "code": "# should NOT allow for any imports\nimport os\n\nos.system(\"echo security breach\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ImportError: os not supported", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/import_error.golden_py3 b/v3/tests/backend-tests/import_error.golden_py3 new file mode 100644 index 000000000..96e9fa679 --- /dev/null +++ b/v3/tests/backend-tests/import_error.golden_py3 @@ -0,0 +1,26 @@ +{ + "code": "# should NOT allow for any imports\nimport os\n\nos.system(\"echo security breach\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "ImportError: os not supported", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/import_error.txt b/v3/tests/backend-tests/import_error.txt new file mode 100644 index 000000000..028a74e54 --- /dev/null +++ b/v3/tests/backend-tests/import_error.txt @@ -0,0 +1,4 @@ +# should NOT allow for any imports +import os + +os.system("echo security breach") diff --git a/v3/tests/backend-tests/inf-nan.golden b/v3/tests/backend-tests/inf-nan.golden new file mode 100644 index 000000000..0ea44ee8b --- /dev/null +++ b/v3/tests/backend-tests/inf-nan.golden @@ -0,0 +1,81 @@ +{ + "code": "x = float('inf')\ny = float('-inf')\nz = float('nan')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ] + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "SPECIAL_FLOAT", + "-Infinity" + ], + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ] + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "SPECIAL_FLOAT", + "-Infinity" + ], + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ], + "z": [ + "SPECIAL_FLOAT", + "NaN" + ] + }, + "heap": {}, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/inf-nan.golden_py3 b/v3/tests/backend-tests/inf-nan.golden_py3 new file mode 100644 index 000000000..0ea44ee8b --- /dev/null +++ b/v3/tests/backend-tests/inf-nan.golden_py3 @@ -0,0 +1,81 @@ +{ + "code": "x = float('inf')\ny = float('-inf')\nz = float('nan')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ] + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "SPECIAL_FLOAT", + "-Infinity" + ], + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ] + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "SPECIAL_FLOAT", + "-Infinity" + ], + "x": [ + "SPECIAL_FLOAT", + "Infinity" + ], + "z": [ + "SPECIAL_FLOAT", + "NaN" + ] + }, + "heap": {}, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/inf-nan.txt b/v3/tests/backend-tests/inf-nan.txt new file mode 100644 index 000000000..ff814ed49 --- /dev/null +++ b/v3/tests/backend-tests/inf-nan.txt @@ -0,0 +1,3 @@ +x = float('inf') +y = float('-inf') +z = float('nan') diff --git a/v3/tests/backend-tests/infinite_loop.golden b/v3/tests/backend-tests/infinite_loop.golden new file mode 100644 index 000000000..217546644 --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop.golden @@ -0,0 +1,7545 @@ +{ + "code": "# Fibonacci!!!\n\narr = [1, 1]\n\nprint(arr[0])\n\nwhile True:\n print(arr[-1])\n tmp = sum(arr)\n arr.append(tmp)\n del arr[0]\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1, + 2 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5, + 8 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8, + 13 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13, + 21 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21, + 34 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34, + 55 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55, + 89 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89, + 144 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144, + 233 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233, + 377 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377, + 610 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610, + 987 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987, + 1597 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597, + 2584 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584, + 4181 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181, + 6765 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765, + 10946 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946, + 17711 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711, + 28657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657, + 46368 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368, + 75025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025, + 121393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393, + 196418 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418, + 317811 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811, + 514229 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229, + 832040 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040, + 1346269 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269, + 2178309 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309, + 3524578 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578, + 5702887 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887, + 9227465 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465, + 14930352 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352, + 24157817 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817, + 39088169 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169, + 63245986 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986, + 102334155 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155, + 165580141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141, + 267914296 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296, + 433494437 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437, + 701408733 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733, + 1134903170 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170, + 1836311903 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903, + 2971215073 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073, + 4807526976 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976, + 7778742049 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049, + 12586269025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025, + 20365011074 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074, + 32951280099 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099, + 53316291173 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173, + 86267571272 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272, + 139583862445 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445, + 225851433717 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717, + 365435296162 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162, + 591286729879 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879, + 956722026041 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041, + 1548008755920 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920, + 2504730781961 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/infinite_loop.golden_py3 b/v3/tests/backend-tests/infinite_loop.golden_py3 new file mode 100644 index 000000000..ed5d62820 --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop.golden_py3 @@ -0,0 +1,7560 @@ +{ + "code": "# Fibonacci!!!\n\narr = [1, 1]\n\nprint(arr[0])\n\nwhile True:\n print(arr[-1])\n tmp = sum(arr)\n arr.append(tmp)\n del arr[0]\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 1, + 2 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2, + 3, + 5 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3, + 5, + 8 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 8, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5, + 8, + 13 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 13, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 8, + 13, + 21 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 21, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 13, + 21, + 34 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 34, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 21, + 34, + 55 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 55, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 34, + 55, + 89 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 89, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 55, + 89, + 144 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 144, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 89, + 144, + 233 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 233, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 144, + 233, + 377 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 377, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 233, + 377, + 610 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 610, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 377, + 610, + 987 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 987, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 610, + 987, + 1597 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1597, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 987, + 1597, + 2584 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2584, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1597, + 2584, + 4181 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4181, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2584, + 4181, + 6765 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6765, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4181, + 6765, + 10946 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10946, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6765, + 10946, + 17711 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17711, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10946, + 17711, + 28657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 28657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17711, + 28657, + 46368 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 46368, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 28657, + 46368, + 75025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 75025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 46368, + 75025, + 121393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 121393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 75025, + 121393, + 196418 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 196418, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 121393, + 196418, + 317811 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 317811, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 196418, + 317811, + 514229 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 514229, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 317811, + 514229, + 832040 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 832040, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 514229, + 832040, + 1346269 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1346269, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 832040, + 1346269, + 2178309 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2178309, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1346269, + 2178309, + 3524578 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3524578, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2178309, + 3524578, + 5702887 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 5702887, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 3524578, + 5702887, + 9227465 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 9227465, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 5702887, + 9227465, + 14930352 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 14930352, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 9227465, + 14930352, + 24157817 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 24157817, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 14930352, + 24157817, + 39088169 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 39088169, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 24157817, + 39088169, + 63245986 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 63245986, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 39088169, + 63245986, + 102334155 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 102334155, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 63245986, + 102334155, + 165580141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 165580141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 102334155, + 165580141, + 267914296 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 267914296, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 165580141, + 267914296, + 433494437 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 433494437, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 267914296, + 433494437, + 701408733 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 701408733, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 433494437, + 701408733, + 1134903170 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1134903170, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 701408733, + 1134903170, + 1836311903 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1836311903, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1134903170, + 1836311903, + 2971215073 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2971215073, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1836311903, + 2971215073, + 4807526976 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4807526976, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2971215073, + 4807526976, + 7778742049 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 7778742049, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4807526976, + 7778742049, + 12586269025 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 12586269025, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 7778742049, + 12586269025, + 20365011074 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 20365011074, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 12586269025, + 20365011074, + 32951280099 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 32951280099, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 20365011074, + 32951280099, + 53316291173 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 53316291173, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 32951280099, + 53316291173, + 86267571272 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 86267571272, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 53316291173, + 86267571272, + 139583862445 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 139583862445, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 86267571272, + 139583862445, + 225851433717 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 225851433717, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 139583862445, + 225851433717, + 365435296162 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 365435296162, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 225851433717, + 365435296162, + 591286729879 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 591286729879, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 365435296162, + 591286729879, + 956722026041 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 956722026041, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 591286729879, + 956722026041, + 1548008755920 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1548008755920, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 956722026041, + 1548008755920, + 2504730781961 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2504730781961, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1548008755920, + 2504730781961, + 4052739537881 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 4052739537881, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2504730781961, + 4052739537881, + 6557470319842 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 6557470319842, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 4052739537881, + 6557470319842, + 10610209857723 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 10610209857723, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 6557470319842, + 10610209857723, + 17167680177565 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 17167680177565, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 10610209857723, + 17167680177565, + 27777890035288 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 27777890035288, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 17167680177565, + 27777890035288, + 44945570212853 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 44945570212853, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 27777890035288, + 44945570212853, + 72723460248141 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 72723460248141, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 44945570212853, + 72723460248141, + 117669030460994 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 117669030460994, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 72723460248141, + 117669030460994, + 190392490709135 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 190392490709135, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 117669030460994, + 190392490709135, + 308061521170129 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 308061521170129, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 190392490709135, + 308061521170129, + 498454011879264 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 498454011879264, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 308061521170129, + 498454011879264, + 806515533049393 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 806515533049393, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 498454011879264, + 806515533049393, + 1304969544928657 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 1304969544928657, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 806515533049393, + 1304969544928657, + 2111485077978050 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 2111485077978050, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1304969544928657, + 2111485077978050, + 3416454622906707 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "arr", + "tmp" + ], + "stdout": "1\n1\n2\n3\n5\n8\n13\n21\n34\n55\n89\n144\n233\n377\n610\n987\n1597\n2584\n4181\n6765\n10946\n17711\n28657\n46368\n75025\n121393\n196418\n317811\n514229\n832040\n1346269\n2178309\n3524578\n5702887\n9227465\n14930352\n24157817\n39088169\n63245986\n102334155\n165580141\n267914296\n433494437\n701408733\n1134903170\n1836311903\n2971215073\n4807526976\n7778742049\n12586269025\n20365011074\n32951280099\n53316291173\n86267571272\n139583862445\n225851433717\n365435296162\n591286729879\n956722026041\n1548008755920\n2504730781961\n4052739537881\n6557470319842\n10610209857723\n17167680177565\n27777890035288\n44945570212853\n72723460248141\n117669030460994\n190392490709135\n308061521170129\n498454011879264\n806515533049393\n1304969544928657\n2111485077978050\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "tmp": 3416454622906707, + "arr": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 2111485077978050, + 3416454622906707 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/infinite_loop.txt b/v3/tests/backend-tests/infinite_loop.txt new file mode 100644 index 000000000..b480914bb --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop.txt @@ -0,0 +1,12 @@ +# Fibonacci!!! + +arr = [1, 1] + +print(arr[0]) + +while True: + print(arr[-1]) + tmp = sum(arr) + arr.append(tmp) + del arr[0] + diff --git a/v3/tests/backend-tests/infinite_loop_one_liner.golden b/v3/tests/backend-tests/infinite_loop_one_liner.golden new file mode 100644 index 000000000..e28f84304 --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop_one_liner.golden @@ -0,0 +1,3009 @@ +{ + "code": "while 1:\n print(\"hahahaha\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/infinite_loop_one_liner.golden_py3 b/v3/tests/backend-tests/infinite_loop_one_liner.golden_py3 new file mode 100644 index 000000000..e28f84304 --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop_one_liner.golden_py3 @@ -0,0 +1,3009 @@ +{ + "code": "while 1:\n print(\"hahahaha\")\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "hahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\nhahahaha\n", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "exception_msg": "(stopped after 300 steps to prevent possible infinite loop)", + "event": "instruction_limit_reached" + } + ] +} diff --git a/v3/tests/backend-tests/infinite_loop_one_liner.txt b/v3/tests/backend-tests/infinite_loop_one_liner.txt new file mode 100644 index 000000000..6bc80597f --- /dev/null +++ b/v3/tests/backend-tests/infinite_loop_one_liner.txt @@ -0,0 +1,2 @@ +while 1: + print("hahahaha") diff --git a/v3/tests/backend-tests/john-compose.golden b/v3/tests/backend-tests/john-compose.golden new file mode 100644 index 000000000..9acb62b04 --- /dev/null +++ b/v3/tests/backend-tests/john-compose.golden @@ -0,0 +1,1262 @@ +{ + "code": "def compose1(f, g):\n return lambda x: f(g(x))\n\nadd_one_and_square = compose1(lambda x: x * x, lambda x: x + 1)\nresult = add_one_and_square(12)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1", + "ordered_varnames": [ + "f", + "g" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1", + "ordered_varnames": [ + "f", + "g" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 13, + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 169, + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 169, + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ], + "result": 169 + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-compose.golden_py3 b/v3/tests/backend-tests/john-compose.golden_py3 new file mode 100644 index 000000000..9acb62b04 --- /dev/null +++ b/v3/tests/backend-tests/john-compose.golden_py3 @@ -0,0 +1,1262 @@ +{ + "code": "def compose1(f, g):\n return lambda x: f(g(x))\n\nadd_one_and_square = compose1(lambda x: x * x, lambda x: x + 1)\nresult = add_one_and_square(12)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1", + "ordered_varnames": [ + "f", + "g" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1", + "ordered_varnames": [ + "f", + "g" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1" + ], + "stdout": "", + "func_name": "compose1", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "compose1", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 13, + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 12 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 169, + "x": 13 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 169, + "x": 12 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "compose1", + "add_one_and_square", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "g": [ + "REF", + 2 + ], + "f": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "compose1", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "compose1_f1_p_z", + "ordered_varnames": [ + "f", + "g", + "__return__" + ] + } + ], + "globals": { + "compose1": [ + "REF", + 1 + ], + "add_one_and_square": [ + "REF", + 4 + ], + "result": 169 + }, + "heap": { + "1": [ + "FUNCTION", + "compose1(f, g)", + null + ], + "2": [ + "FUNCTION", + "(x)", + null + ], + "3": [ + "FUNCTION", + "(x)", + null + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-compose.txt b/v3/tests/backend-tests/john-compose.txt new file mode 100644 index 000000000..4b8767912 --- /dev/null +++ b/v3/tests/backend-tests/john-compose.txt @@ -0,0 +1,5 @@ +def compose1(f, g): + return lambda x: f(g(x)) + +add_one_and_square = compose1(lambda x: x * x, lambda x: x + 1) +result = add_one_and_square(12) diff --git a/v3/tests/backend-tests/john-import-test.golden b/v3/tests/backend-tests/john-import-test.golden new file mode 100644 index 000000000..add78fcb4 --- /dev/null +++ b/v3/tests/backend-tests/john-import-test.golden @@ -0,0 +1,282 @@ +{ + "code": "import math\nimport operator\nimport string\nimport collections\nimport re\nimport json\n\n# causes some errors in regression tests, but fine in GAE ...\n#import random\n#import datetime\n#import functools\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "math" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ], + "2": [ + "module", + "operator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ], + "2": [ + "module", + "operator" + ], + "3": [ + "module", + "string" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "collections": [ + "REF", + 4 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ], + "2": [ + "module", + "operator" + ], + "3": [ + "module", + "string" + ], + "4": [ + "module", + "collections" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections", + "re" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "re": [ + "REF", + 5 + ], + "collections": [ + "REF", + 4 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ], + "2": [ + "module", + "operator" + ], + "3": [ + "module", + "string" + ], + "4": [ + "module", + "collections" + ], + "5": [ + "module", + "re" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections", + "re", + "json" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "string": [ + "REF", + 3 + ], + "re": [ + "REF", + 5 + ], + "json": [ + "REF", + 6 + ], + "collections": [ + "REF", + 4 + ], + "operator": [ + "REF", + 2 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "math" + ], + "2": [ + "module", + "operator" + ], + "3": [ + "module", + "string" + ], + "4": [ + "module", + "collections" + ], + "5": [ + "module", + "re" + ], + "6": [ + "module", + "json" + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-import-test.golden_py3 b/v3/tests/backend-tests/john-import-test.golden_py3 new file mode 100644 index 000000000..332fa4b5e --- /dev/null +++ b/v3/tests/backend-tests/john-import-test.golden_py3 @@ -0,0 +1,282 @@ +{ + "code": "import math\nimport operator\nimport string\nimport collections\nimport re\nimport json\n\n# causes some errors in regression tests, but fine in GAE ...\n#import random\n#import datetime\n#import functools\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "math" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "INSTANCE", + "module" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "INSTANCE", + "module" + ], + "3": [ + "INSTANCE", + "module" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "collections": [ + "REF", + 4 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "INSTANCE", + "module" + ], + "3": [ + "INSTANCE", + "module" + ], + "4": [ + "INSTANCE", + "module" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections", + "re" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 2 + ], + "re": [ + "REF", + 5 + ], + "collections": [ + "REF", + 4 + ], + "string": [ + "REF", + 3 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "INSTANCE", + "module" + ], + "3": [ + "INSTANCE", + "module" + ], + "4": [ + "INSTANCE", + "module" + ], + "5": [ + "INSTANCE", + "module" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "math", + "operator", + "string", + "collections", + "re", + "json" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "string": [ + "REF", + 3 + ], + "re": [ + "REF", + 5 + ], + "json": [ + "REF", + 6 + ], + "collections": [ + "REF", + 4 + ], + "operator": [ + "REF", + 2 + ], + "math": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "INSTANCE", + "module" + ], + "3": [ + "INSTANCE", + "module" + ], + "4": [ + "INSTANCE", + "module" + ], + "5": [ + "INSTANCE", + "module" + ], + "6": [ + "INSTANCE", + "module" + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-import-test.txt b/v3/tests/backend-tests/john-import-test.txt new file mode 100644 index 000000000..fcb15f43f --- /dev/null +++ b/v3/tests/backend-tests/john-import-test.txt @@ -0,0 +1,11 @@ +import math +import operator +import string +import collections +import re +import json + +# causes some errors in regression tests, but fine in GAE ... +#import random +#import datetime +#import functools diff --git a/v3/tests/backend-tests/john-lambda-lambda-mini.golden b/v3/tests/backend-tests/john-lambda-lambda-mini.golden new file mode 100644 index 000000000..fa12e342a --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda-mini.golden @@ -0,0 +1,817 @@ +{ + "code": "def a(b):\n a = b(3)\n a(100)\n\na(lambda a: (lambda b: a))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2_p", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-lambda-lambda-mini.golden_py3 b/v3/tests/backend-tests/john-lambda-lambda-mini.golden_py3 new file mode 100644 index 000000000..fa12e342a --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda-mini.golden_py3 @@ -0,0 +1,817 @@ +{ + "code": "def a(b):\n a = b(3)\n a(100)\n\na(lambda a: (lambda b: a))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2_p", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "b": 100 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "b", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 3 + ], + "__return__": null, + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-lambda-lambda-mini.txt b/v3/tests/backend-tests/john-lambda-lambda-mini.txt new file mode 100644 index 000000000..bd8f4edc3 --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda-mini.txt @@ -0,0 +1,5 @@ +def a(b): + a = b(3) + a(100) + +a(lambda a: (lambda b: a)) diff --git a/v3/tests/backend-tests/john-lambda-lambda.golden b/v3/tests/backend-tests/john-lambda-lambda.golden new file mode 100644 index 000000000..c1ddaf182 --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda.golden @@ -0,0 +1,472 @@ +{ + "code": "# another gem from john denero ...\ndef a(b):\n a, b = b(3)\n\na(lambda a: (lambda b: a, a))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2_p", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-lambda-lambda.golden_py3 b/v3/tests/backend-tests/john-lambda-lambda.golden_py3 new file mode 100644 index 000000000..c1ddaf182 --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda.golden_py3 @@ -0,0 +1,472 @@ +{ + "code": "# another gem from john denero ...\ndef a(b):\n a, b = b(3)\n\na(lambda a: (lambda b: a, a))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "a" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "b": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2_p", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "2": [ + "FUNCTION", + "(a)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "a", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": [ + "REF", + 4 + ], + "__return__": null, + "b": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "a", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "a_f1", + "ordered_varnames": [ + "b", + "a", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 3, + "__return__": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "_f2_p_z", + "ordered_varnames": [ + "a", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "a(b)", + null + ], + "3": [ + "TUPLE", + [ + "REF", + 4 + ], + 3 + ], + "4": [ + "FUNCTION", + "(b)", + 2 + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-lambda-lambda.txt b/v3/tests/backend-tests/john-lambda-lambda.txt new file mode 100644 index 000000000..61a0d2fb5 --- /dev/null +++ b/v3/tests/backend-tests/john-lambda-lambda.txt @@ -0,0 +1,5 @@ +# another gem from john denero ... +def a(b): + a, b = b(3) + +a(lambda a: (lambda b: a, a)) diff --git a/v3/tests/backend-tests/john-triple-nesting.golden b/v3/tests/backend-tests/john-triple-nesting.golden new file mode 100644 index 000000000..61283f9c5 --- /dev/null +++ b/v3/tests/backend-tests/john-triple-nesting.golden @@ -0,0 +1,11 @@ +{ + "code": "# test in Python 3\ndef f(t):\n def g(t):\n def h():\n nonlocal t\n t += 1\n return h, lambda: t\n h, gt = g(0)\n return h, gt, lambda: t\nh, gt, ft = f(0)\nft(), gt()\nh()\nft(), gt()\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 5)", + "line": 5, + "event": "uncaught_exception", + "offset": 22 + } + ] +} diff --git a/v3/tests/backend-tests/john-triple-nesting.golden_py3 b/v3/tests/backend-tests/john-triple-nesting.golden_py3 new file mode 100644 index 000000000..8c9415e9b --- /dev/null +++ b/v3/tests/backend-tests/john-triple-nesting.golden_py3 @@ -0,0 +1,3726 @@ +{ + "code": "# test in Python 3\ndef f(t):\n def g(t):\n def h():\n nonlocal t\n t += 1\n return h, lambda: t\n h, gt = g(0)\n return h, gt, lambda: t\nh, gt, ft = f(0)\nft(), gt()\nh()\nft(), gt()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "t": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "t" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p", + "ordered_varnames": [ + "t", + "h" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g", + "h", + "gt" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 0 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "h", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "h", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "h_f5", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 2, + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "h", + "gt", + "ft" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "t": 0, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "t", + "g", + "h", + "gt", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "h": [ + "REF", + 3 + ], + "t": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "g", + "is_zombie": true, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2_p_z", + "ordered_varnames": [ + "t", + "h", + "__return__" + ] + } + ], + "globals": { + "h": [ + "REF", + 3 + ], + "gt": [ + "REF", + 5 + ], + "ft": [ + "REF", + 7 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(t)", + null + ], + "2": [ + "FUNCTION", + "g(t)", + 1 + ], + "3": [ + "FUNCTION", + "h()", + 2 + ], + "4": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ] + ], + "5": [ + "FUNCTION", + "()", + 2 + ], + "6": [ + "TUPLE", + [ + "REF", + 3 + ], + [ + "REF", + 5 + ], + [ + "REF", + 7 + ] + ], + "7": [ + "FUNCTION", + "()", + 1 + ] + }, + "line": 13, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/john-triple-nesting.txt b/v3/tests/backend-tests/john-triple-nesting.txt new file mode 100644 index 000000000..60a949231 --- /dev/null +++ b/v3/tests/backend-tests/john-triple-nesting.txt @@ -0,0 +1,13 @@ +# test in Python 3 +def f(t): + def g(t): + def h(): + nonlocal t + t += 1 + return h, lambda: t + h, gt = g(0) + return h, gt, lambda: t +h, gt, ft = f(0) +ft(), gt() +h() +ft(), gt() diff --git a/v3/tests/backend-tests/lambda_1.golden b/v3/tests/backend-tests/lambda_1.golden new file mode 100644 index 000000000..947c90d9d --- /dev/null +++ b/v3/tests/backend-tests/lambda_1.golden @@ -0,0 +1,5493 @@ +{ + "code": "def summation(low, high, f, next):\n s = 0\n x = low\n while x <= high:\n s = s + f(x)\n x = next(x)\n return s\n\ndef sumsquares(low, high):\n return summation(low, high, lambda x: x**2, lambda x: x+1)\n\nprint(sumsquares(1, 5))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "s": 0, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 4, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 9, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 4, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 16, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 25, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 6, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "__return__": 55, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "__return__": 55, + "low": 1 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "55\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "__return__": 55, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p_z", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/lambda_1.golden_py3 b/v3/tests/backend-tests/lambda_1.golden_py3 new file mode 100644 index 000000000..947c90d9d --- /dev/null +++ b/v3/tests/backend-tests/lambda_1.golden_py3 @@ -0,0 +1,5493 @@ +{ + "code": "def summation(low, high, f, next):\n s = 0\n x = low\n while x <= high:\n s = s + f(x)\n x = next(x)\n return s\n\ndef sumsquares(low, high):\n return summation(low, high, lambda x: x**2, lambda x: x+1)\n\nprint(sumsquares(1, 5))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1", + "ordered_varnames": [ + "low", + "high" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "high": 5, + "s": 0, + "f": [ + "REF", + 4 + ], + "low": 1, + "next": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 0, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f4", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 1, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": 4, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 3, + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f6", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 5, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": 9, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f7", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 4, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f8", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 14, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": 16, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5, + "x": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f10", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 30, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": 25, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f11", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "call" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": 6, + "x": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f12", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "summation", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "f": [ + "REF", + 4 + ], + "next": [ + "REF", + 3 + ], + "high": 5, + "s": 55, + "low": 1, + "__return__": 55, + "x": 6 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "summation", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "summation_f2", + "ordered_varnames": [ + "low", + "high", + "f", + "next", + "s", + "x", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ], + "3": [ + "FUNCTION", + "(x)", + 1 + ], + "4": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "", + "func_name": "sumsquares", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "__return__": 55, + "low": 1 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 10, + "event": "return" + }, + { + "ordered_globals": [ + "summation", + "sumsquares" + ], + "stdout": "55\n", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "high": 5, + "__return__": 55, + "low": 1 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "sumsquares", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "sumsquares_f1_p_z", + "ordered_varnames": [ + "low", + "high", + "__return__" + ] + } + ], + "globals": { + "summation": [ + "REF", + 1 + ], + "sumsquares": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "summation(low, high, f, next)", + null + ], + "2": [ + "FUNCTION", + "sumsquares(low, high)", + null + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/lambda_1.txt b/v3/tests/backend-tests/lambda_1.txt new file mode 100644 index 000000000..da6d717e0 --- /dev/null +++ b/v3/tests/backend-tests/lambda_1.txt @@ -0,0 +1,12 @@ +def summation(low, high, f, next): + s = 0 + x = low + while x <= high: + s = s + f(x) + x = next(x) + return s + +def sumsquares(low, high): + return summation(low, high, lambda x: x**2, lambda x: x+1) + +print(sumsquares(1, 5)) diff --git a/v3/tests/backend-tests/ling-scheme-1.golden b/v3/tests/backend-tests/ling-scheme-1.golden new file mode 100644 index 000000000..a775366a0 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-1.golden @@ -0,0 +1,4020 @@ +{ + "code": "def repeat(f, n):\n if n == 0:\n return []\n else:\n return [f()] + repeat(f, n - 1)\n\nrepeat(lambda : 5, 5)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "3": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "4": [ + "LIST", + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "5": [ + "LIST", + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "6": [ + "LIST", + 5, + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 7 + ], + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "7": [ + "LIST", + 5, + 5, + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 8 + ], + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "8": [ + "LIST", + 5, + 5, + 5, + 5, + 5 + ], + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-1.golden_py3 b/v3/tests/backend-tests/ling-scheme-1.golden_py3 new file mode 100644 index 000000000..a775366a0 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-1.golden_py3 @@ -0,0 +1,4020 @@ +{ + "code": "def repeat(f, n):\n if n == 0:\n return []\n else:\n return [f()] + repeat(f, n - 1)\n\nrepeat(lambda : 5, 5)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f6", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f8", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f10", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "f": [ + "REF", + 2 + ], + "n": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f11", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "3": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "REF", + 4 + ], + "f": [ + "REF", + 2 + ], + "n": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f9", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "4": [ + "LIST", + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "REF", + 5 + ], + "f": [ + "REF", + 2 + ], + "n": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f7", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "5": [ + "LIST", + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "REF", + 6 + ], + "f": [ + "REF", + 2 + ], + "n": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f5", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "6": [ + "LIST", + 5, + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 7 + ], + "f": [ + "REF", + 2 + ], + "n": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f3", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ], + "7": [ + "LIST", + 5, + 5, + 5, + 5 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "repeat", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 8 + ], + "f": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "repeat", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "repeat_f1", + "ordered_varnames": [ + "f", + "n", + "__return__" + ] + } + ], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "8": [ + "LIST", + 5, + 5, + 5, + 5, + 5 + ], + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ], + "2": [ + "FUNCTION", + "()", + null + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "repeat" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "repeat": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "repeat(f, n)", + null + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-1.txt b/v3/tests/backend-tests/ling-scheme-1.txt new file mode 100644 index 000000000..254102edc --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-1.txt @@ -0,0 +1,7 @@ +def repeat(f, n): + if n == 0: + return [] + else: + return [f()] + repeat(f, n - 1) + +repeat(lambda : 5, 5) diff --git a/v3/tests/backend-tests/ling-scheme-2.golden b/v3/tests/backend-tests/ling-scheme-2.golden new file mode 100644 index 000000000..add7f461f --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-2.golden @@ -0,0 +1,3788 @@ +{ + "code": "def iota(n):\n def loop(acc, k):\n if k == n:\n return list(reversed(acc))\n else:\n return loop([k] + acc, k + 1)\n return loop([], 0)\n\nresult = iota(5)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "__return__": [ + "REF", + 9 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "__return__": [ + "REF", + 9 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "__return__": [ + "REF", + 9 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "__return__": [ + "REF", + 9 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 9 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "__return__": [ + "REF", + 9 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "iota", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p_z", + "ordered_varnames": [ + "n", + "loop", + "__return__" + ] + } + ], + "globals": { + "result": [ + "REF", + 9 + ], + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-2.golden_py3 b/v3/tests/backend-tests/ling-scheme-2.golden_py3 new file mode 100644 index 000000000..add7f461f --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-2.golden_py3 @@ -0,0 +1,3788 @@ +{ + "code": "def iota(n):\n def loop(acc, k):\n if k == n:\n return list(reversed(acc))\n else:\n return loop([k] + acc, k + 1)\n return loop([], 0)\n\nresult = iota(5)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "n": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1", + "ordered_varnames": [ + "n" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "k": 4 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "acc": [ + "REF", + 8 + ], + "__return__": [ + "REF", + 9 + ], + "k": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f7", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "8": [ + "LIST", + 4, + 3, + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "k": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "acc": [ + "REF", + 7 + ], + "__return__": [ + "REF", + 9 + ], + "k": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f6", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "7": [ + "LIST", + 3, + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "k": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "acc": [ + "REF", + 6 + ], + "__return__": [ + "REF", + 9 + ], + "k": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f5", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "6": [ + "LIST", + 2, + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "k": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "acc": [ + "REF", + 5 + ], + "__return__": [ + "REF", + 9 + ], + "k": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f4", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "iota(n)", + null + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "5": [ + "LIST", + 1, + 0 + ], + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "k": 0 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "acc": [ + "REF", + 4 + ], + "__return__": [ + "REF", + 9 + ], + "k": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f3", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "4": [ + "LIST", + 0 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "loop", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "acc": [ + "REF", + 3 + ], + "__return__": [ + "REF", + 9 + ], + "k": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "loop", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "loop_f2", + "ordered_varnames": [ + "acc", + "k", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "3": [ + "LIST" + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "iota" + ], + "stdout": "", + "func_name": "iota", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "iota", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p", + "ordered_varnames": [ + "n", + "loop", + "__return__" + ] + } + ], + "globals": { + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "iota", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "loop": [ + "REF", + 2 + ], + "n": 5 + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "iota", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "iota_f1_p_z", + "ordered_varnames": [ + "n", + "loop", + "__return__" + ] + } + ], + "globals": { + "result": [ + "REF", + 9 + ], + "iota": [ + "REF", + 1 + ] + }, + "heap": { + "9": [ + "LIST", + 0, + 1, + 2, + 3, + 4 + ], + "2": [ + "FUNCTION", + "loop(acc, k)", + 1 + ], + "1": [ + "FUNCTION", + "iota(n)", + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-2.txt b/v3/tests/backend-tests/ling-scheme-2.txt new file mode 100644 index 000000000..b94897002 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-2.txt @@ -0,0 +1,10 @@ +def iota(n): + def loop(acc, k): + if k == n: + return list(reversed(acc)) + else: + return loop([k] + acc, k + 1) + return loop([], 0) + +result = iota(5) + diff --git a/v3/tests/backend-tests/ling-scheme-3.golden b/v3/tests/backend-tests/ling-scheme-3.golden new file mode 100644 index 000000000..d9ef80599 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-3.golden @@ -0,0 +1,8612 @@ +{ + "code": "def map(f, xs):\n if xs == []:\n return []\n else:\n return [f(xs[0])] + list(map(f, xs[1:]))\n\ndef append(xs, ys):\n if xs == []:\n return ys\n else:\n return [xs[0]] + append(xs[1:], ys)\n\ndef pairs(xs):\n if xs == []:\n return []\n elif xs[1:] == []:\n return []\n else:\n return append(map(lambda x: [xs[0], x], xs[1:]), pairs(xs[1:]))\n\nresult = pairs([1, 2, 3])\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "map" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 7 + ], + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "7": [ + "LIST", + 1, + 2 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "9": [ + "LIST", + 1, + 3 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": [ + "REF", + 11 + ], + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ], + "11": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "REF", + 12 + ], + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "9": [ + "LIST", + 1, + 3 + ], + "12": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 13 + ], + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "REF", + 17 + ], + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "17": [ + "LIST", + 2, + 3 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": [ + "REF", + 19 + ], + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ], + "19": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": [ + "REF", + 20 + ], + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "REF", + 22 + ], + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ], + "22": [ + "LIST" + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": [ + "REF", + 22 + ], + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": [ + "REF", + 27 + ], + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "27": [ + "LIST", + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p_z", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "result": [ + "REF", + 28 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 21, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-3.golden_py3 b/v3/tests/backend-tests/ling-scheme-3.golden_py3 new file mode 100644 index 000000000..d9ef80599 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-3.golden_py3 @@ -0,0 +1,8612 @@ +{ + "code": "def map(f, xs):\n if xs == []:\n return []\n else:\n return [f(xs[0])] + list(map(f, xs[1:]))\n\ndef append(xs, ys):\n if xs == []:\n return ys\n else:\n return [xs[0]] + append(xs[1:], ys)\n\ndef pairs(xs):\n if xs == []:\n return []\n elif xs[1:] == []:\n return []\n else:\n return append(map(lambda x: [xs[0], x], xs[1:]), pairs(xs[1:]))\n\nresult = pairs([1, 2, 3])\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "map" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ] + }, + "line": 21, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 7 + ], + "x": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f3", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "7": [ + "LIST", + 1, + 2 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 5, + "encoded_locals": { + "__return__": [ + "REF", + 9 + ], + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "_f5", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "9": [ + "LIST", + 1, + 3 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 6, + "encoded_locals": { + "__return__": [ + "REF", + 11 + ], + "xs": [ + "REF", + 10 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f6", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "10": [ + "LIST" + ], + "11": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": [ + "REF", + 12 + ], + "xs": [ + "REF", + 8 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f4", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "8": [ + "LIST", + 3 + ], + "9": [ + "LIST", + 1, + 3 + ], + "12": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": [ + "REF", + 13 + ], + "xs": [ + "REF", + 5 + ], + "f": [ + "REF", + 6 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f2", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "5": [ + "LIST", + 2, + 3 + ], + "6": [ + "FUNCTION", + "(x)", + 1 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ] + }, + "line": 19, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 9, + "encoded_locals": { + "__return__": [ + "REF", + 17 + ], + "x": 3, + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f9", + "ordered_varnames": [ + "x", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "17": [ + "LIST", + 2, + 3 + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs" + ] + }, + { + "frame_id": 10, + "encoded_locals": { + "__return__": [ + "REF", + 19 + ], + "xs": [ + "REF", + 18 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f10", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "18": [ + "LIST" + ], + "19": [ + "LIST" + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "map", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 8, + "encoded_locals": { + "__return__": [ + "REF", + 20 + ], + "xs": [ + "REF", + 15 + ], + "f": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "map", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "map_f8", + "ordered_varnames": [ + "f", + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "15": [ + "LIST", + 3 + ], + "16": [ + "FUNCTION", + "(x)", + 1 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 13, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ] + }, + "line": 17, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 11, + "encoded_locals": { + "__return__": [ + "REF", + 22 + ], + "xs": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f11", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "21": [ + "LIST", + 3 + ], + "22": [ + "LIST" + ] + }, + "line": 17, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 13, + "encoded_locals": { + "__return__": [ + "REF", + 22 + ], + "xs": [ + "REF", + 23 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f13", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "23": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 12, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 20 + ], + "ys": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f12", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "20": [ + "LIST", + [ + "REF", + 17 + ] + ], + "22": [ + "LIST" + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 7, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 14 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f7", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "14": [ + "LIST", + 2, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 7, + "event": "call" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 16, + "encoded_locals": { + "__return__": [ + "REF", + 24 + ], + "xs": [ + "REF", + 26 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f16", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "26": [ + "LIST" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys" + ] + }, + { + "frame_id": 15, + "encoded_locals": { + "__return__": [ + "REF", + 27 + ], + "xs": [ + "REF", + 25 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f15", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "25": [ + "LIST", + [ + "REF", + 9 + ] + ], + "27": [ + "LIST", + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "append", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs" + ] + }, + { + "frame_id": 14, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 13 + ], + "ys": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "append", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "append_f14", + "ordered_varnames": [ + "xs", + "ys", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "13": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ] + ], + "17": [ + "LIST", + 2, + 3 + ], + "24": [ + "LIST", + [ + "REF", + 17 + ] + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs" + ], + "stdout": "", + "func_name": "pairs", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "pairs", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 19, + "event": "return" + }, + { + "ordered_globals": [ + "map", + "append", + "pairs", + "result" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 28 + ], + "xs": [ + "REF", + 4 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "pairs", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "pairs_f1_p_z", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "map": [ + "REF", + 1 + ], + "pairs": [ + "REF", + 3 + ], + "result": [ + "REF", + 28 + ], + "append": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "map(f, xs)", + null + ], + "2": [ + "FUNCTION", + "append(xs, ys)", + null + ], + "3": [ + "FUNCTION", + "pairs(xs)", + null + ], + "4": [ + "LIST", + 1, + 2, + 3 + ], + "7": [ + "LIST", + 1, + 2 + ], + "9": [ + "LIST", + 1, + 3 + ], + "17": [ + "LIST", + 2, + 3 + ], + "28": [ + "LIST", + [ + "REF", + 7 + ], + [ + "REF", + 9 + ], + [ + "REF", + 17 + ] + ] + }, + "line": 21, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/ling-scheme-3.txt b/v3/tests/backend-tests/ling-scheme-3.txt new file mode 100644 index 000000000..14ee800e8 --- /dev/null +++ b/v3/tests/backend-tests/ling-scheme-3.txt @@ -0,0 +1,21 @@ +def map(f, xs): + if xs == []: + return [] + else: + return [f(xs[0])] + list(map(f, xs[1:])) + +def append(xs, ys): + if xs == []: + return ys + else: + return [xs[0]] + append(xs[1:], ys) + +def pairs(xs): + if xs == []: + return [] + elif xs[1:] == []: + return [] + else: + return append(map(lambda x: [xs[0], x], xs[1:]), pairs(xs[1:])) + +result = pairs([1, 2, 3]) diff --git a/v3/tests/backend-tests/list_dict_test.golden b/v3/tests/backend-tests/list_dict_test.golden new file mode 100644 index 000000000..4baefb4f5 --- /dev/null +++ b/v3/tests/backend-tests/list_dict_test.golden @@ -0,0 +1,416 @@ +{ + "code": "x = {}\nl = ['hello', \"world\", 'goodbye']\nfor (i, e) in enumerate(l):\n x[e] = i\nprint(x)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": [ + "REF", + 1 + ], + "e": "hello", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": [ + "REF", + 1 + ], + "e": "hello", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 1 + ], + "e": "world", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 1 + ], + "e": "world", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "{'world': 1, 'hello': 0, 'goodbye': 2}\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_dict_test.golden_py3 b/v3/tests/backend-tests/list_dict_test.golden_py3 new file mode 100644 index 000000000..4baefb4f5 --- /dev/null +++ b/v3/tests/backend-tests/list_dict_test.golden_py3 @@ -0,0 +1,416 @@ +{ + "code": "x = {}\nl = ['hello', \"world\", 'goodbye']\nfor (i, e) in enumerate(l):\n x[e] = i\nprint(x)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "DICT" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ], + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": [ + "REF", + 1 + ], + "e": "hello", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT" + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": [ + "REF", + 1 + ], + "e": "hello", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 1 + ], + "e": "world", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": [ + "REF", + 1 + ], + "e": "world", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "l", + "i", + "e" + ], + "stdout": "{'world': 1, 'hello': 0, 'goodbye': 2}\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": [ + "REF", + 1 + ], + "e": "goodbye", + "l": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "DICT", + [ + "world", + 1 + ], + [ + "hello", + 0 + ], + [ + "goodbye", + 2 + ] + ], + "2": [ + "LIST", + "hello", + "world", + "goodbye" + ] + }, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_dict_test.txt b/v3/tests/backend-tests/list_dict_test.txt new file mode 100644 index 000000000..b44628526 --- /dev/null +++ b/v3/tests/backend-tests/list_dict_test.txt @@ -0,0 +1,6 @@ +x = {} +l = ['hello', "world", 'goodbye'] +for (i, e) in enumerate(l): + x[e] = i +print(x) + diff --git a/v3/tests/backend-tests/list_sum.golden b/v3/tests/backend-tests/list_sum.golden new file mode 100644 index 000000000..332b07b21 --- /dev/null +++ b/v3/tests/backend-tests/list_sum.golden @@ -0,0 +1,2125 @@ +{ + "code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 0, + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5, + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 6, + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList", + "total" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "total": 6, + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_sum.golden_py3 b/v3/tests/backend-tests/list_sum.golden_py3 new file mode 100644 index 000000000..332b07b21 --- /dev/null +++ b/v3/tests/backend-tests/list_sum.golden_py3 @@ -0,0 +1,2125 @@ +{ + "code": "def listSum(numbers):\n if not numbers:\n return 0\n else:\n (f, rest) = numbers\n return f + listSum(rest)\n\nmyList = (1, (2, (3, None)))\ntotal = listSum(myList)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": 0, + "numbers": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f4", + "ordered_varnames": [ + "numbers", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 3, + "numbers": [ + "REF", + 4 + ], + "rest": null, + "f": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f3", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5, + "numbers": [ + "REF", + 3 + ], + "rest": [ + "REF", + 4 + ], + "f": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f2", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList" + ], + "stdout": "", + "func_name": "listSum", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 6, + "numbers": [ + "REF", + 2 + ], + "rest": [ + "REF", + 3 + ], + "f": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "listSum", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "listSum_f1", + "ordered_varnames": [ + "numbers", + "f", + "rest", + "__return__" + ] + } + ], + "globals": { + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "listSum", + "myList", + "total" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "total": 6, + "myList": [ + "REF", + 2 + ], + "listSum": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "listSum(numbers)", + null + ], + "2": [ + "TUPLE", + 1, + [ + "REF", + 3 + ] + ], + "3": [ + "TUPLE", + 2, + [ + "REF", + 4 + ] + ], + "4": [ + "TUPLE", + 3, + null + ] + }, + "line": 9, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_sum.txt b/v3/tests/backend-tests/list_sum.txt new file mode 100644 index 000000000..ce2556a0d --- /dev/null +++ b/v3/tests/backend-tests/list_sum.txt @@ -0,0 +1,9 @@ +def listSum(numbers): + if not numbers: + return 0 + else: + (f, rest) = numbers + return f + listSum(rest) + +myList = (1, (2, (3, None))) +total = listSum(myList) diff --git a/v3/tests/backend-tests/list_test.golden b/v3/tests/backend-tests/list_test.golden new file mode 100644 index 000000000..9d34156ff --- /dev/null +++ b/v3/tests/backend-tests/list_test.golden @@ -0,0 +1,48 @@ +{ + "code": "x = [1, 2, \"hello\", (3, 4)]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + "hello", + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 1, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_test.golden_py3 b/v3/tests/backend-tests/list_test.golden_py3 new file mode 100644 index 000000000..9d34156ff --- /dev/null +++ b/v3/tests/backend-tests/list_test.golden_py3 @@ -0,0 +1,48 @@ +{ + "code": "x = [1, 2, \"hello\", (3, 4)]\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "LIST", + 1, + 2, + "hello", + [ + "REF", + 2 + ] + ], + "2": [ + "TUPLE", + 3, + 4 + ] + }, + "line": 1, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/list_test.txt b/v3/tests/backend-tests/list_test.txt new file mode 100644 index 000000000..a56999261 --- /dev/null +++ b/v3/tests/backend-tests/list_test.txt @@ -0,0 +1 @@ +x = [1, 2, "hello", (3, 4)] diff --git a/v3/tests/backend-tests/namedtuple.golden b/v3/tests/backend-tests/namedtuple.golden new file mode 100644 index 000000000..02f8867cd --- /dev/null +++ b/v3/tests/backend-tests/namedtuple.golden @@ -0,0 +1,620 @@ +{ + "code": "from collections import namedtuple\n\nRestaurant = namedtuple('Restaurant', 'name cuisine phone dish price')\n\nR1 = Restaurant(\"Taillevent\", \"French\", \"343-3434\", \"Escargots\", 24.50)\nR2 = Restaurant(\"La Tour D'Argent\", \"French\", \"343-3344\", \"Ris de Veau\", 48.50)\n\n#R3 = Restaurant(\"Pascal\", \"French\", \"333-4444\", \"Bouillabaisse\", 32.00)\n#R4 = Restaurant(\"Thai Touch\", \"Thai\", \"444-3333\", \"Mee Krob\", 10.95)\n#R5 = Restaurant(\"Thai Dishes\", \"Thai\", \"333-4433\", \"Paht Woon Sen\", 8.50)\n#R6 = Restaurant(\"Thai Spoon\", \"Thai\", \"334-3344\", \"Mussamun\", 9.00)\n#R7 = Restaurant(\"McDonald's\", \"Burgers\", \"333-4443\", \"Big Mac\", 3.95)\n#R8 = Restaurant(\"Burger King\", \"Burgers\", \"444-3344\", \"Whopper\", 3.75)\n#R9 = Restaurant(\"Wahoo's\", \"Fish Tacos\", \"443-4443\", \"Mahi Mahi Burrito\", 7.50)\n#R10 = Restaurant(\"In-N-Out Burger\", \"Burgers\", \"434-3344\", \"Cheeseburger\", 2.50)\n#R11 = Restaurant(\"The Shack\", \"Burgers\", \"333-3334\", \"Hot Link Burger\", 4.50)\n#R12 = Restaurant(\"Gina's\", \"Pizza\", \"334-4433\", \"Combo Pizza\", 12.95)\n#R13 = Restaurant(\"Peacock, Room\", \"Indian\", \"333-4443\", \"Rogan Josh\", 12.50)\n#R14 = Restaurant(\"Gaylord\", \"Indian\", \"333-3433\", \"Tandoori Chicken\", 13.50)\n#R15 = Restaurant(\"Mr. Chow\", \"Chinese\", \"222-3333\", \"Peking Duck\", 24.50)\n#R16 = Restaurant(\"Chez Panisse\", \"California\", \"222-3322\", \"Grilled Duck Breast\", 25.00)\n#R17 = Restaurant(\"Spago\", \"California\", \"333-2222\", \"Striped Bass\", 24.50)\n#R18 = Restaurant(\"Sriped Bass\", \"Seafood\", \"333-2233\", \"Cedar Plank Salmon\", 21.50)\n#R19 = Restaurant(\"Golden Pagoda\", \"Chinese\", \"232-3232\", \"Egg Foo Young\", 8.50)\n#R20 = Restaurant(\"Langer's\", \"Delicatessen\", \"333-2223\", \"Pastrami Sandwich\", 11.50)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/namedtuple.golden_py3 b/v3/tests/backend-tests/namedtuple.golden_py3 new file mode 100644 index 000000000..0f58907bb --- /dev/null +++ b/v3/tests/backend-tests/namedtuple.golden_py3 @@ -0,0 +1,716 @@ +{ + "code": "from collections import namedtuple\n\nRestaurant = namedtuple('Restaurant', 'name cuisine phone dish price')\n\nR1 = Restaurant(\"Taillevent\", \"French\", \"343-3434\", \"Escargots\", 24.50)\nR2 = Restaurant(\"La Tour D'Argent\", \"French\", \"343-3344\", \"Ris de Veau\", 48.50)\n\n#R3 = Restaurant(\"Pascal\", \"French\", \"333-4444\", \"Bouillabaisse\", 32.00)\n#R4 = Restaurant(\"Thai Touch\", \"Thai\", \"444-3333\", \"Mee Krob\", 10.95)\n#R5 = Restaurant(\"Thai Dishes\", \"Thai\", \"333-4433\", \"Paht Woon Sen\", 8.50)\n#R6 = Restaurant(\"Thai Spoon\", \"Thai\", \"334-3344\", \"Mussamun\", 9.00)\n#R7 = Restaurant(\"McDonald's\", \"Burgers\", \"333-4443\", \"Big Mac\", 3.95)\n#R8 = Restaurant(\"Burger King\", \"Burgers\", \"444-3344\", \"Whopper\", 3.75)\n#R9 = Restaurant(\"Wahoo's\", \"Fish Tacos\", \"443-4443\", \"Mahi Mahi Burrito\", 7.50)\n#R10 = Restaurant(\"In-N-Out Burger\", \"Burgers\", \"434-3344\", \"Cheeseburger\", 2.50)\n#R11 = Restaurant(\"The Shack\", \"Burgers\", \"333-3334\", \"Hot Link Burger\", 4.50)\n#R12 = Restaurant(\"Gina's\", \"Pizza\", \"334-4433\", \"Combo Pizza\", 12.95)\n#R13 = Restaurant(\"Peacock, Room\", \"Indian\", \"333-4443\", \"Rogan Josh\", 12.50)\n#R14 = Restaurant(\"Gaylord\", \"Indian\", \"333-3433\", \"Tandoori Chicken\", 13.50)\n#R15 = Restaurant(\"Mr. Chow\", \"Chinese\", \"222-3333\", \"Peking Duck\", 24.50)\n#R16 = Restaurant(\"Chez Panisse\", \"California\", \"222-3322\", \"Grilled Duck Breast\", 25.00)\n#R17 = Restaurant(\"Spago\", \"California\", \"333-2222\", \"Striped Bass\", 24.50)\n#R18 = Restaurant(\"Sriped Bass\", \"Seafood\", \"333-2233\", \"Cedar Plank Salmon\", 21.50)\n#R19 = Restaurant(\"Golden Pagoda\", \"Chinese\", \"232-3232\", \"Egg Foo Young\", 8.50)\n#R20 = Restaurant(\"Langer's\", \"Delicatessen\", \"333-2223\", \"Pastrami Sandwich\", 11.50)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/namedtuple.txt b/v3/tests/backend-tests/namedtuple.txt new file mode 100644 index 000000000..218d64349 --- /dev/null +++ b/v3/tests/backend-tests/namedtuple.txt @@ -0,0 +1,25 @@ +from collections import namedtuple + +Restaurant = namedtuple('Restaurant', 'name cuisine phone dish price') + +R1 = Restaurant("Taillevent", "French", "343-3434", "Escargots", 24.50) +R2 = Restaurant("La Tour D'Argent", "French", "343-3344", "Ris de Veau", 48.50) + +#R3 = Restaurant("Pascal", "French", "333-4444", "Bouillabaisse", 32.00) +#R4 = Restaurant("Thai Touch", "Thai", "444-3333", "Mee Krob", 10.95) +#R5 = Restaurant("Thai Dishes", "Thai", "333-4433", "Paht Woon Sen", 8.50) +#R6 = Restaurant("Thai Spoon", "Thai", "334-3344", "Mussamun", 9.00) +#R7 = Restaurant("McDonald's", "Burgers", "333-4443", "Big Mac", 3.95) +#R8 = Restaurant("Burger King", "Burgers", "444-3344", "Whopper", 3.75) +#R9 = Restaurant("Wahoo's", "Fish Tacos", "443-4443", "Mahi Mahi Burrito", 7.50) +#R10 = Restaurant("In-N-Out Burger", "Burgers", "434-3344", "Cheeseburger", 2.50) +#R11 = Restaurant("The Shack", "Burgers", "333-3334", "Hot Link Burger", 4.50) +#R12 = Restaurant("Gina's", "Pizza", "334-4433", "Combo Pizza", 12.95) +#R13 = Restaurant("Peacock, Room", "Indian", "333-4443", "Rogan Josh", 12.50) +#R14 = Restaurant("Gaylord", "Indian", "333-3433", "Tandoori Chicken", 13.50) +#R15 = Restaurant("Mr. Chow", "Chinese", "222-3333", "Peking Duck", 24.50) +#R16 = Restaurant("Chez Panisse", "California", "222-3322", "Grilled Duck Breast", 25.00) +#R17 = Restaurant("Spago", "California", "333-2222", "Striped Bass", 24.50) +#R18 = Restaurant("Sriped Bass", "Seafood", "333-2233", "Cedar Plank Salmon", 21.50) +#R19 = Restaurant("Golden Pagoda", "Chinese", "232-3232", "Egg Foo Young", 8.50) +#R20 = Restaurant("Langer's", "Delicatessen", "333-2223", "Pastrami Sandwich", 11.50) diff --git a/v3/tests/backend-tests/nested-class-test.golden b/v3/tests/backend-tests/nested-class-test.golden new file mode 100644 index 000000000..5c15d317d --- /dev/null +++ b/v3/tests/backend-tests/nested-class-test.golden @@ -0,0 +1,305 @@ +{ + "code": "class A:\n x = 5\n class B:\n y = 6\n class C:\n z = 7\n\na = A()\nb = a.B()\nc = b.C()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ], + "5": [ + "INSTANCE", + "B" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ], + "c": [ + "REF", + 6 + ], + "b": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ], + "5": [ + "INSTANCE", + "B" + ], + "6": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/nested-class-test.golden_py3 b/v3/tests/backend-tests/nested-class-test.golden_py3 new file mode 100644 index 000000000..5c15d317d --- /dev/null +++ b/v3/tests/backend-tests/nested-class-test.golden_py3 @@ -0,0 +1,305 @@ +{ + "code": "class A:\n x = 5\n class B:\n y = 6\n class C:\n z = 7\n\na = A()\nb = a.B()\nc = b.C()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ], + "b": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ], + "5": [ + "INSTANCE", + "B" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ], + "c": [ + "REF", + 6 + ], + "b": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "B", + [ + "REF", + 2 + ] + ], + [ + "x", + 5 + ] + ], + "2": [ + "CLASS", + "B", + [], + [ + "C", + [ + "REF", + 3 + ] + ], + [ + "y", + 6 + ] + ], + "3": [ + "CLASS", + "C", + [], + [ + "z", + 7 + ] + ], + "4": [ + "INSTANCE", + "A" + ], + "5": [ + "INSTANCE", + "B" + ], + "6": [ + "INSTANCE", + "C" + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/nested-class-test.txt b/v3/tests/backend-tests/nested-class-test.txt new file mode 100644 index 000000000..0c4da73da --- /dev/null +++ b/v3/tests/backend-tests/nested-class-test.txt @@ -0,0 +1,10 @@ +class A: + x = 5 + class B: + y = 6 + class C: + z = 7 + +a = A() +b = a.B() +c = b.C() diff --git a/v3/tests/backend-tests/nested-func-identical-frames.golden b/v3/tests/backend-tests/nested-func-identical-frames.golden new file mode 100644 index 000000000..a1a90caef --- /dev/null +++ b/v3/tests/backend-tests/nested-func-identical-frames.golden @@ -0,0 +1,1166 @@ +{ + "code": "def f():\n def g():\n pass\n return g\n\nf()()\nf()()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__frame_id__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__frame_id__": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "g", + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__frame_id__": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f2", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__frame_id__": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f2", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "__frame_id__": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f2", + "ordered_varnames": [ + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__frame_id__": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__frame_id__": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p", + "ordered_varnames": [ + "g", + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__frame_id__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f4", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__frame_id__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f4", + "ordered_varnames": [ + "__frame_id__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null, + "__frame_id__": 4 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "g_f4", + "ordered_varnames": [ + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "__frame_id__": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "__frame_id__": 3, + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__frame_id__", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/nested-func-identical-frames.golden_py3 b/v3/tests/backend-tests/nested-func-identical-frames.golden_py3 new file mode 100644 index 000000000..0e177dd3f --- /dev/null +++ b/v3/tests/backend-tests/nested-func-identical-frames.golden_py3 @@ -0,0 +1,1102 @@ +{ + "code": "def f():\n def g():\n pass\n return g\n\nf()()\nf()()\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p", + "ordered_varnames": [ + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p", + "ordered_varnames": [ + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": {}, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f4", + "ordered_varnames": [ + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": [ + "REF", + 2 + ], + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": [ + "REF", + 3 + ], + "g": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f3_p_z", + "ordered_varnames": [ + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f()", + null + ], + "2": [ + "FUNCTION", + "g()", + 1 + ], + "3": [ + "FUNCTION", + "g()", + 3 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/nested-func-identical-frames.txt b/v3/tests/backend-tests/nested-func-identical-frames.txt new file mode 100644 index 000000000..460c70c03 --- /dev/null +++ b/v3/tests/backend-tests/nested-func-identical-frames.txt @@ -0,0 +1,7 @@ +def f(): + def g(): + pass + return g + +f()() +f()() diff --git a/v3/tests/backend-tests/newstyle_class.golden b/v3/tests/backend-tests/newstyle_class.golden new file mode 100644 index 000000000..e54f299c0 --- /dev/null +++ b/v3/tests/backend-tests/newstyle_class.golden @@ -0,0 +1,817 @@ +{ + "code": "class A(object):\n bla = \"A\"\n def __init__(self):\n self.blb = \"B\"\n\n def x(self):\n self.bla = self.blb\n\na = A()\n\na.x()\n\nprint(a.bla)\nprint(A.bla)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "B\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "B\nA\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 14, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/newstyle_class.golden_py3 b/v3/tests/backend-tests/newstyle_class.golden_py3 new file mode 100644 index 000000000..e54f299c0 --- /dev/null +++ b/v3/tests/backend-tests/newstyle_class.golden_py3 @@ -0,0 +1,817 @@ +{ + "code": "class A(object):\n bla = \"A\"\n def __init__(self):\n self.blb = \"B\"\n\n def x(self):\n self.bla = self.blb\n\na = A()\n\na.x()\n\nprint(a.bla)\nprint(A.bla)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "A" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "blb", + "B" + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "x", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 4 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "x", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "x_f2", + "ordered_varnames": [ + "self", + "__return__" + ] + } + ], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 7, + "event": "return" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "B\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "A", + "a" + ], + "stdout": "B\nA\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "A": [ + "REF", + 1 + ], + "a": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "A", + [], + [ + "__init__", + [ + "REF", + 2 + ] + ], + [ + "bla", + "A" + ], + [ + "x", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "FUNCTION", + "__init__(self)", + null + ], + "3": [ + "FUNCTION", + "x(self)", + null + ], + "4": [ + "INSTANCE", + "A", + [ + "bla", + "B" + ], + [ + "blb", + "B" + ] + ] + }, + "line": 14, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/newstyle_class.txt b/v3/tests/backend-tests/newstyle_class.txt new file mode 100644 index 000000000..bc5e5551a --- /dev/null +++ b/v3/tests/backend-tests/newstyle_class.txt @@ -0,0 +1,15 @@ +class A(object): + bla = "A" + def __init__(self): + self.blb = "B" + + def x(self): + self.bla = self.blb + +a = A() + +a.x() + +print(a.bla) +print(A.bla) + diff --git a/v3/tests/backend-tests/one_func.golden b/v3/tests/backend-tests/one_func.golden new file mode 100644 index 000000000..ecd811f5c --- /dev/null +++ b/v3/tests/backend-tests/one_func.golden @@ -0,0 +1,350 @@ +{ + "code": "def add(a, b, c):\n d = a + b\n return c + d\n\nx = 5\ny = 10\nz = x * y\nprint(add(x, y, z))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5, + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/one_func.golden_py3 b/v3/tests/backend-tests/one_func.golden_py3 new file mode 100644 index 000000000..ecd811f5c --- /dev/null +++ b/v3/tests/backend-tests/one_func.golden_py3 @@ -0,0 +1,350 @@ +{ + "code": "def add(a, b, c):\n d = a + b\n return c + d\n\nx = 5\ny = 10\nz = x * y\nprint(add(x, y, z))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5, + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50 + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 8, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/one_func.txt b/v3/tests/backend-tests/one_func.txt new file mode 100644 index 000000000..9ade23636 --- /dev/null +++ b/v3/tests/backend-tests/one_func.txt @@ -0,0 +1,8 @@ +def add(a, b, c): + d = a + b + return c + d + +x = 5 +y = 10 +z = x * y +print(add(x, y, z)) diff --git a/v3/tests/backend-tests/open_error.golden b/v3/tests/backend-tests/open_error.golden new file mode 100644 index 000000000..7f343f9c8 --- /dev/null +++ b/v3/tests/backend-tests/open_error.golden @@ -0,0 +1,26 @@ +{ + "code": "for line in open(\"/etc/passwd\"):\n print(line)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "NameError: name 'open' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/open_error.golden_py3 b/v3/tests/backend-tests/open_error.golden_py3 new file mode 100644 index 000000000..7f343f9c8 --- /dev/null +++ b/v3/tests/backend-tests/open_error.golden_py3 @@ -0,0 +1,26 @@ +{ + "code": "for line in open(\"/etc/passwd\"):\n print(line)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [], + "stdout": "", + "exception_msg": "NameError: name 'open' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/open_error.txt b/v3/tests/backend-tests/open_error.txt new file mode 100644 index 000000000..a80454764 --- /dev/null +++ b/v3/tests/backend-tests/open_error.txt @@ -0,0 +1,3 @@ +for line in open("/etc/passwd"): + print(line) + diff --git a/v3/tests/backend-tests/papajohn-monster.golden b/v3/tests/backend-tests/papajohn-monster.golden new file mode 100644 index 000000000..0ccce8050 --- /dev/null +++ b/v3/tests/backend-tests/papajohn-monster.golden @@ -0,0 +1,988 @@ +{ + "code": "# original reported by papajohn in Oct 2013\nclass Monster:\n vampire = {2: 'scary'}\n def werewolf(self):\n return self.vampire[2]\n\nclass Blob(Monster):\n vampire = {2: 'night'}\n def __init__(self, ghoul):\n self.witch = ghoul.vampire\n self.witch[3] = self\n\nspooky = Blob(Monster)\nspooky.werewolf = lambda self: Monster.vampire[2]\n\n\n# minimized by pgbovine ...\n'''\nclass Monster:\n def werewolf(self):\n pass\n\nclass Blob(Monster):\n def __init__(self, ghoul):\n pass\n\nspooky = Blob(Monster)\n'''\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Monster": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob" + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul", + "__return__" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "werewolf", + [ + "REF", + 8 + ] + ], + [ + "witch", + [ + "REF", + 2 + ] + ] + ], + "8": [ + "FUNCTION", + "(self)", + null + ] + }, + "line": 28, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "werewolf", + [ + "REF", + 8 + ] + ], + [ + "witch", + [ + "REF", + 2 + ] + ] + ], + "8": [ + "FUNCTION", + "(self)", + null + ] + }, + "line": 28, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/papajohn-monster.golden_py3 b/v3/tests/backend-tests/papajohn-monster.golden_py3 new file mode 100644 index 000000000..0ccce8050 --- /dev/null +++ b/v3/tests/backend-tests/papajohn-monster.golden_py3 @@ -0,0 +1,988 @@ +{ + "code": "# original reported by papajohn in Oct 2013\nclass Monster:\n vampire = {2: 'scary'}\n def werewolf(self):\n return self.vampire[2]\n\nclass Blob(Monster):\n vampire = {2: 'night'}\n def __init__(self, ghoul):\n self.witch = ghoul.vampire\n self.witch[3] = self\n\nspooky = Blob(Monster)\nspooky.werewolf = lambda self: Monster.vampire[2]\n\n\n# minimized by pgbovine ...\n'''\nclass Monster:\n def werewolf(self):\n pass\n\nclass Blob(Monster):\n def __init__(self, ghoul):\n pass\n\nspooky = Blob(Monster)\n'''\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Monster": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob" + ] + }, + "line": 9, + "event": "call" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob" + ], + "stdout": "", + "func_name": "__init__", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "self": [ + "REF", + 7 + ], + "ghoul": [ + "REF", + 1 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "__init__", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "__init___f1", + "ordered_varnames": [ + "self", + "ghoul", + "__return__" + ] + } + ], + "globals": { + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 11, + "event": "return" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "witch", + [ + "REF", + 2 + ] + ] + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "werewolf", + [ + "REF", + 8 + ] + ], + [ + "witch", + [ + "REF", + 2 + ] + ] + ], + "8": [ + "FUNCTION", + "(self)", + null + ] + }, + "line": 28, + "event": "step_line" + }, + { + "ordered_globals": [ + "Monster", + "Blob", + "spooky" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "spooky": [ + "REF", + 7 + ], + "Monster": [ + "REF", + 1 + ], + "Blob": [ + "REF", + 4 + ] + }, + "heap": { + "1": [ + "CLASS", + "Monster", + [], + [ + "vampire", + [ + "REF", + 2 + ] + ], + [ + "werewolf", + [ + "REF", + 3 + ] + ] + ], + "2": [ + "DICT", + [ + 2, + "scary" + ], + [ + 3, + [ + "REF", + 7 + ] + ] + ], + "3": [ + "FUNCTION", + "werewolf(self)", + null + ], + "4": [ + "CLASS", + "Blob", + [ + "Monster" + ], + [ + "__init__", + [ + "REF", + 5 + ] + ], + [ + "vampire", + [ + "REF", + 6 + ] + ] + ], + "5": [ + "FUNCTION", + "__init__(self, ghoul)", + null + ], + "6": [ + "DICT", + [ + 2, + "night" + ] + ], + "7": [ + "INSTANCE", + "Blob", + [ + "werewolf", + [ + "REF", + 8 + ] + ], + [ + "witch", + [ + "REF", + 2 + ] + ] + ], + "8": [ + "FUNCTION", + "(self)", + null + ] + }, + "line": 28, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/papajohn-monster.txt b/v3/tests/backend-tests/papajohn-monster.txt new file mode 100644 index 000000000..700090839 --- /dev/null +++ b/v3/tests/backend-tests/papajohn-monster.txt @@ -0,0 +1,28 @@ +# original reported by papajohn in Oct 2013 +class Monster: + vampire = {2: 'scary'} + def werewolf(self): + return self.vampire[2] + +class Blob(Monster): + vampire = {2: 'night'} + def __init__(self, ghoul): + self.witch = ghoul.vampire + self.witch[3] = self + +spooky = Blob(Monster) +spooky.werewolf = lambda self: Monster.vampire[2] + + +# minimized by pgbovine ... +''' +class Monster: + def werewolf(self): + pass + +class Blob(Monster): + def __init__(self, ghoul): + pass + +spooky = Blob(Monster) +''' diff --git a/v3/tests/backend-tests/parent-finding-1.golden b/v3/tests/backend-tests/parent-finding-1.golden new file mode 100644 index 000000000..00a4aab28 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-1.golden @@ -0,0 +1,483 @@ +{ + "code": "# make sure OPT finds f as the parent of g\ndef f(x, y):\n def g(x):\n return x + y\n return g(3)\n\nf(1, 2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 5, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 5, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "y", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/parent-finding-1.golden_py3 b/v3/tests/backend-tests/parent-finding-1.golden_py3 new file mode 100644 index 000000000..00a4aab28 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-1.golden_py3 @@ -0,0 +1,483 @@ +{ + "code": "# make sure OPT finds f as the parent of g\ndef f(x, y):\n def g(x):\n return x + y\n return g(3)\n\nf(1, 2)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "x", + "y" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "g", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 5, + "x": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "g", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "g_f2", + "ordered_varnames": [ + "x", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 5, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p", + "ordered_varnames": [ + "x", + "y", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "y": 2, + "x": 1, + "__return__": 5, + "g": [ + "REF", + 2 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "f", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "f_f1_p_z", + "ordered_varnames": [ + "x", + "y", + "g", + "__return__" + ] + } + ], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(x, y)", + null + ], + "2": [ + "FUNCTION", + "g(x)", + 1 + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/parent-finding-1.txt b/v3/tests/backend-tests/parent-finding-1.txt new file mode 100644 index 000000000..0726f0726 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-1.txt @@ -0,0 +1,7 @@ +# make sure OPT finds f as the parent of g +def f(x, y): + def g(x): + return x + y + return g(3) + +f(1, 2) diff --git a/v3/tests/backend-tests/parent-finding-2.golden b/v3/tests/backend-tests/parent-finding-2.golden new file mode 100644 index 000000000..812420ec4 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-2.golden @@ -0,0 +1,957 @@ +{ + "code": "# make sure OPT finds horse as parent of mask\ndef horse(mask):\n horse = mask\n def mask(horse):\n return horse\n return horse(mask)\n\nmask = lambda horse: horse(2)\n\nhorse(mask)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "horse": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask", + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 2, + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p_z", + "ordered_varnames": [ + "mask", + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/parent-finding-2.golden_py3 b/v3/tests/backend-tests/parent-finding-2.golden_py3 new file mode 100644 index 000000000..812420ec4 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-2.golden_py3 @@ -0,0 +1,957 @@ +{ + "code": "# make sure OPT finds horse as parent of mask\ndef horse(mask):\n horse = mask\n def mask(horse):\n return horse\n return horse(mask)\n\nmask = lambda horse: horse(2)\n\nhorse(mask)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "horse": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 2, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1", + "ordered_varnames": [ + "mask", + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 4, + "event": "call" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "mask", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "__return__": 2, + "horse": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "mask", + "is_zombie": false, + "parent_frame_id_list": [ + 1 + ], + "unique_hash": "mask_f3", + "ordered_varnames": [ + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 5, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse" + ] + }, + { + "frame_id": 2, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f2", + "ordered_varnames": [ + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "horse", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": true, + "is_parent": true, + "func_name": "horse", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p", + "ordered_varnames": [ + "mask", + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 6, + "event": "return" + }, + { + "ordered_globals": [ + "horse", + "mask" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": 2, + "horse": [ + "REF", + 2 + ], + "mask": [ + "REF", + 3 + ] + }, + "is_highlighted": false, + "is_parent": true, + "func_name": "horse", + "is_zombie": true, + "parent_frame_id_list": [], + "unique_hash": "horse_f1_p_z", + "ordered_varnames": [ + "mask", + "horse", + "__return__" + ] + } + ], + "globals": { + "horse": [ + "REF", + 1 + ], + "mask": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "horse(mask)", + null + ], + "2": [ + "FUNCTION", + "(horse)", + null + ], + "3": [ + "FUNCTION", + "mask(horse)", + 1 + ] + }, + "line": 10, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/parent-finding-2.txt b/v3/tests/backend-tests/parent-finding-2.txt new file mode 100644 index 000000000..c117d4163 --- /dev/null +++ b/v3/tests/backend-tests/parent-finding-2.txt @@ -0,0 +1,10 @@ +# make sure OPT finds horse as parent of mask +def horse(mask): + horse = mask + def mask(horse): + return horse + return horse(mask) + +mask = lambda horse: horse(2) + +horse(mask) diff --git a/v3/tests/backend-tests/parse_error.golden b/v3/tests/backend-tests/parse_error.golden new file mode 100644 index 000000000..047dce543 --- /dev/null +++ b/v3/tests/backend-tests/parse_error.golden @@ -0,0 +1,11 @@ +{ + "code": "x = 0\nfor i in range(10):\n x += 1\n print x\n x += 1\n\n", + "trace": [ + { + "exception_msg": "IndentationError: unexpected indent (, line 4)", + "line": 4, + "event": "uncaught_exception", + "offset": 3 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error.golden_py3 b/v3/tests/backend-tests/parse_error.golden_py3 new file mode 100644 index 000000000..047dce543 --- /dev/null +++ b/v3/tests/backend-tests/parse_error.golden_py3 @@ -0,0 +1,11 @@ +{ + "code": "x = 0\nfor i in range(10):\n x += 1\n print x\n x += 1\n\n", + "trace": [ + { + "exception_msg": "IndentationError: unexpected indent (, line 4)", + "line": 4, + "event": "uncaught_exception", + "offset": 3 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error.txt b/v3/tests/backend-tests/parse_error.txt new file mode 100644 index 000000000..efab03533 --- /dev/null +++ b/v3/tests/backend-tests/parse_error.txt @@ -0,0 +1,6 @@ +x = 0 +for i in range(10): + x += 1 + print x + x += 1 + diff --git a/v3/tests/backend-tests/parse_error_2.golden b/v3/tests/backend-tests/parse_error_2.golden new file mode 100644 index 000000000..a6973b8ee --- /dev/null +++ b/v3/tests/backend-tests/parse_error_2.golden @@ -0,0 +1,11 @@ +{ + "code": "x = 5\ny = x\nz = x + y\n\nfor x haslk;fjlasfhlkjl;sa\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 5)", + "line": 5, + "event": "uncaught_exception", + "offset": 11 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error_2.golden_py3 b/v3/tests/backend-tests/parse_error_2.golden_py3 new file mode 100644 index 000000000..a6973b8ee --- /dev/null +++ b/v3/tests/backend-tests/parse_error_2.golden_py3 @@ -0,0 +1,11 @@ +{ + "code": "x = 5\ny = x\nz = x + y\n\nfor x haslk;fjlasfhlkjl;sa\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 5)", + "line": 5, + "event": "uncaught_exception", + "offset": 11 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error_2.txt b/v3/tests/backend-tests/parse_error_2.txt new file mode 100644 index 000000000..80070e74b --- /dev/null +++ b/v3/tests/backend-tests/parse_error_2.txt @@ -0,0 +1,5 @@ +x = 5 +y = x +z = x + y + +for x haslk;fjlasfhlkjl;sa diff --git a/v3/tests/backend-tests/parse_error_3.golden b/v3/tests/backend-tests/parse_error_3.golden new file mode 100644 index 000000000..8ae537dd0 --- /dev/null +++ b/v3/tests/backend-tests/parse_error_3.golden @@ -0,0 +1,11 @@ +{ + "code": "x = []\nfor i in range(10):\n x.append(i)\n if i == 24:\n pass\n print y\n", + "trace": [ + { + "exception_msg": "IndentationError: unindent does not match any outer indentation level (, line 6)", + "line": 6, + "event": "uncaught_exception", + "offset": 11 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error_3.golden_py3 b/v3/tests/backend-tests/parse_error_3.golden_py3 new file mode 100644 index 000000000..8ae537dd0 --- /dev/null +++ b/v3/tests/backend-tests/parse_error_3.golden_py3 @@ -0,0 +1,11 @@ +{ + "code": "x = []\nfor i in range(10):\n x.append(i)\n if i == 24:\n pass\n print y\n", + "trace": [ + { + "exception_msg": "IndentationError: unindent does not match any outer indentation level (, line 6)", + "line": 6, + "event": "uncaught_exception", + "offset": 11 + } + ] +} diff --git a/v3/tests/backend-tests/parse_error_3.txt b/v3/tests/backend-tests/parse_error_3.txt new file mode 100644 index 000000000..bcc7bbf0e --- /dev/null +++ b/v3/tests/backend-tests/parse_error_3.txt @@ -0,0 +1,6 @@ +x = [] +for i in range(10): + x.append(i) + if i == 24: + pass + print y diff --git a/v3/tests/backend-tests/pie-test.golden b/v3/tests/backend-tests/pie-test.golden new file mode 100644 index 000000000..1a5218ee0 --- /dev/null +++ b/v3/tests/backend-tests/pie-test.golden @@ -0,0 +1,91 @@ +{ + "code": "import operator\nfrom math import pi, e\npie = operator.add(pi, e)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "operator" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator", + "pi", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ], + "pi": 3.142, + "e": 2.718 + }, + "heap": { + "1": [ + "module", + "operator" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator", + "pi", + "e", + "pie" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ], + "pi": 3.142, + "e": 2.718, + "pie": 5.860 + }, + "heap": { + "1": [ + "module", + "operator" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/pie-test.golden_py3 b/v3/tests/backend-tests/pie-test.golden_py3 new file mode 100644 index 000000000..e913056f2 --- /dev/null +++ b/v3/tests/backend-tests/pie-test.golden_py3 @@ -0,0 +1,91 @@ +{ + "code": "import operator\nfrom math import pi, e\npie = operator.add(pi, e)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator", + "pi", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ], + "pi": 3.142, + "e": 2.718 + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "operator", + "pi", + "e", + "pie" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "operator": [ + "REF", + 1 + ], + "pi": 3.142, + "e": 2.718, + "pie": 5.860 + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 3, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/pie-test.txt b/v3/tests/backend-tests/pie-test.txt new file mode 100644 index 000000000..a73f77ec2 --- /dev/null +++ b/v3/tests/backend-tests/pie-test.txt @@ -0,0 +1,3 @@ +import operator +from math import pi, e +pie = operator.add(pi, e) diff --git a/v3/tests/backend-tests/py-modules.golden b/v3/tests/backend-tests/py-modules.golden new file mode 100644 index 000000000..6f5f87c33 --- /dev/null +++ b/v3/tests/backend-tests/py-modules.golden @@ -0,0 +1,132 @@ +{ + "code": "# test to make sure nothing crashes when tracing code in pure-Python\n# function calls imported from modules\nimport random\nrandom.randint(10, 100)\n\nfrom re import compile\nx = compile('foo')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "random" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "random" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "random" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "random" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "random", + "compile" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compile": [ + "REF", + 2 + ], + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "random" + ], + "2": [ + "FUNCTION", + "compile(pattern, flags)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "random", + "compile", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compile": [ + "REF", + 2 + ], + "x": [ + "REF", + 3 + ], + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "random" + ], + "2": [ + "FUNCTION", + "compile(pattern, flags)", + null + ], + "3": [ + "_sre.SRE_Pattern", + "<_sre.SRE_Pattern object at 0xADDR>" + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/py-modules.golden_py3 b/v3/tests/backend-tests/py-modules.golden_py3 new file mode 100644 index 000000000..e8551d9ee --- /dev/null +++ b/v3/tests/backend-tests/py-modules.golden_py3 @@ -0,0 +1,132 @@ +{ + "code": "# test to make sure nothing crashes when tracing code in pure-Python\n# function calls imported from modules\nimport random\nrandom.randint(10, 100)\n\nfrom re import compile\nx = compile('foo')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "random" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "random" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "random", + "compile" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compile": [ + "REF", + 2 + ], + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "compile(pattern, flags)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "random", + "compile", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "compile": [ + "REF", + 2 + ], + "x": [ + "REF", + 3 + ], + "random": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "compile(pattern, flags)", + null + ], + "3": [ + "INSTANCE", + "SRE_Pattern" + ] + }, + "line": 7, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/py-modules.txt b/v3/tests/backend-tests/py-modules.txt new file mode 100644 index 000000000..eb4211809 --- /dev/null +++ b/v3/tests/backend-tests/py-modules.txt @@ -0,0 +1,7 @@ +# test to make sure nothing crashes when tracing code in pure-Python +# function calls imported from modules +import random +random.randint(10, 100) + +from re import compile +x = compile('foo') diff --git a/v3/tests/backend-tests/py3_func_annotations.golden b/v3/tests/backend-tests/py3_func_annotations.golden new file mode 100644 index 000000000..a62687849 --- /dev/null +++ b/v3/tests/backend-tests/py3_func_annotations.golden @@ -0,0 +1,11 @@ +{ + "code": "# test case of Python 3 function annotations inspired by David G. Kay\ndef remove_by_name(L: 'list of Restaurant', name: str) -> 'list of Restaurant':\n \"\"\" Given name, remove all Restaurants with that name from collection.\n \"\"\"\n result = []\n for r in L:\n if r.name != name:\n result.append(r)\n return result\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 2)", + "line": 2, + "event": "uncaught_exception", + "offset": 21 + } + ] +} diff --git a/v3/tests/backend-tests/py3_func_annotations.golden_py3 b/v3/tests/backend-tests/py3_func_annotations.golden_py3 new file mode 100644 index 000000000..20571a78e --- /dev/null +++ b/v3/tests/backend-tests/py3_func_annotations.golden_py3 @@ -0,0 +1,38 @@ +{ + "code": "# test case of Python 3 function annotations inspired by David G. Kay\ndef remove_by_name(L: 'list of Restaurant', name: str) -> 'list of Restaurant':\n \"\"\" Given name, remove all Restaurants with that name from collection.\n \"\"\"\n result = []\n for r in L:\n if r.name != name:\n result.append(r)\n return result\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "remove_by_name" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "remove_by_name": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "remove_by_name(L, name)", + null + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/py3_func_annotations.txt b/v3/tests/backend-tests/py3_func_annotations.txt new file mode 100644 index 000000000..24037afbf --- /dev/null +++ b/v3/tests/backend-tests/py3_func_annotations.txt @@ -0,0 +1,9 @@ +# test case of Python 3 function annotations inspired by David G. Kay +def remove_by_name(L: 'list of Restaurant', name: str) -> 'list of Restaurant': + """ Given name, remove all Restaurants with that name from collection. + """ + result = [] + for r in L: + if r.name != name: + result.append(r) + return result diff --git a/v3/tests/backend-tests/py3_kwonly_args.golden b/v3/tests/backend-tests/py3_kwonly_args.golden new file mode 100644 index 000000000..f8bfc9a22 --- /dev/null +++ b/v3/tests/backend-tests/py3_kwonly_args.golden @@ -0,0 +1,11 @@ +{ + "code": "# Python 3 keyword-only arguments\ndef my_sorted(iterable, *, reverse=False, key=None):\n pass\n", + "trace": [ + { + "exception_msg": "SyntaxError: invalid syntax (, line 2)", + "line": 2, + "event": "uncaught_exception", + "offset": 26 + } + ] +} diff --git a/v3/tests/backend-tests/py3_kwonly_args.golden_py3 b/v3/tests/backend-tests/py3_kwonly_args.golden_py3 new file mode 100644 index 000000000..2affddfb3 --- /dev/null +++ b/v3/tests/backend-tests/py3_kwonly_args.golden_py3 @@ -0,0 +1,38 @@ +{ + "code": "# Python 3 keyword-only arguments\ndef my_sorted(iterable, *, reverse=False, key=None):\n pass\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "my_sorted" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "my_sorted": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "my_sorted(iterable, reverse, key)", + null + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/py3_kwonly_args.txt b/v3/tests/backend-tests/py3_kwonly_args.txt new file mode 100644 index 000000000..e49a8d85a --- /dev/null +++ b/v3/tests/backend-tests/py3_kwonly_args.txt @@ -0,0 +1,3 @@ +# Python 3 keyword-only arguments +def my_sorted(iterable, *, reverse=False, key=None): + pass diff --git a/v3/tests/backend-tests/restaurants.golden b/v3/tests/backend-tests/restaurants.golden new file mode 100644 index 000000000..29333dfed --- /dev/null +++ b/v3/tests/backend-tests/restaurants.golden @@ -0,0 +1,4041 @@ +{ + "code": "# Adapted from an example by David G. Kay\nfrom collections import namedtuple\n\nRestaurant = namedtuple('Restaurant', 'name cuisine phone dish price')\n\nR1 = Restaurant(\"Taillevent\", \"French\", \"343-3434\", \"Escargots\", 24.50)\nR2 = Restaurant(\"La Tour D'Argent\", \"French\", \"343-3344\", \"Ris de Veau\", 48.50)\nR3 = Restaurant(\"Pascal\", \"French\", \"333-4444\", \"Bouillabaisse\", 32.00)\nR4 = Restaurant(\"Thai Touch\", \"Thai\", \"444-3333\", \"Mee Krob\", 10.95)\nR5 = Restaurant(\"Thai Dishes\", \"Thai\", \"333-4433\", \"Paht Woon Sen\", 8.50)\nR6 = Restaurant(\"Thai Spoon\", \"Thai\", \"334-3344\", \"Mussamun\", 9.00)\n\nRL = [R1, R2, R3, R4, R5, R6]\n\nFrenchRestaurants = [r for r in RL if r.cuisine==\"French\"]\nprint(FrenchRestaurants)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "R3": [ + "REF", + 18 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "R5": [ + "REF", + 20 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "R5": [ + "REF", + 20 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 16 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 17 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 18 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 19 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 20 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "r": [ + "REF", + 21 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r", + "FrenchRestaurants" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "FrenchRestaurants": [ + "REF", + 23 + ], + "r": [ + "REF", + 21 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ], + "23": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ] + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "r", + "FrenchRestaurants" + ], + "stdout": "[Restaurant(name='Taillevent', cuisine='French', phone='343-3434', dish='Escargots', price=24.5), Restaurant(name=\"La Tour D'Argent\", cuisine='French', phone='343-3344', dish='Ris de Veau', price=48.5), Restaurant(name='Pascal', cuisine='French', phone='333-4444', dish='Bouillabaisse', price=32.0)]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 19 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 21 + ], + "R1": [ + "REF", + 16 + ], + "R2": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 18 + ], + "FrenchRestaurants": [ + "REF", + 23 + ], + "r": [ + "REF", + 21 + ], + "R5": [ + "REF", + 20 + ], + "RL": [ + "REF", + 22 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__new__", + [ + "REF", + 4 + ] + ], + [ + "__repr__", + [ + "REF", + 5 + ] + ], + [ + "__slots__", + [ + "REF", + 6 + ] + ], + [ + "_asdict", + [ + "REF", + 7 + ] + ], + [ + "_fields", + [ + "REF", + 8 + ] + ], + [ + "_make", + [ + "REF", + 9 + ] + ], + [ + "_replace", + [ + "REF", + 10 + ] + ], + [ + "cuisine", + [ + "REF", + 11 + ] + ], + [ + "dish", + [ + "REF", + 12 + ] + ], + [ + "name", + [ + "REF", + 13 + ] + ], + [ + "phone", + [ + "REF", + 14 + ] + ], + [ + "price", + [ + "REF", + 15 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "staticmethod", + "" + ], + "5": [ + "FUNCTION", + "__repr__(self)", + null + ], + "6": [ + "TUPLE" + ], + "7": [ + "FUNCTION", + "_asdict(self)", + null + ], + "8": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "9": [ + "classmethod", + "" + ], + "10": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "11": [ + "property", + "" + ], + "12": [ + "property", + "" + ], + "13": [ + "property", + "" + ], + "14": [ + "property", + "" + ], + "15": [ + "property", + "" + ], + "16": [ + "INSTANCE", + "Restaurant" + ], + "17": [ + "INSTANCE", + "Restaurant" + ], + "18": [ + "INSTANCE", + "Restaurant" + ], + "19": [ + "INSTANCE", + "Restaurant" + ], + "20": [ + "INSTANCE", + "Restaurant" + ], + "21": [ + "INSTANCE", + "Restaurant" + ], + "22": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ] + ], + "23": [ + "LIST", + [ + "REF", + 16 + ], + [ + "REF", + 17 + ], + [ + "REF", + 18 + ] + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/restaurants.golden_py3 b/v3/tests/backend-tests/restaurants.golden_py3 new file mode 100644 index 000000000..6c1b2f391 --- /dev/null +++ b/v3/tests/backend-tests/restaurants.golden_py3 @@ -0,0 +1,7251 @@ +{ + "code": "# Adapted from an example by David G. Kay\nfrom collections import namedtuple\n\nRestaurant = namedtuple('Restaurant', 'name cuisine phone dish price')\n\nR1 = Restaurant(\"Taillevent\", \"French\", \"343-3434\", \"Escargots\", 24.50)\nR2 = Restaurant(\"La Tour D'Argent\", \"French\", \"343-3344\", \"Ris de Veau\", 48.50)\nR3 = Restaurant(\"Pascal\", \"French\", \"333-4444\", \"Bouillabaisse\", 32.00)\nR4 = Restaurant(\"Thai Touch\", \"Thai\", \"444-3333\", \"Mee Krob\", 10.95)\nR5 = Restaurant(\"Thai Dishes\", \"Thai\", \"333-4433\", \"Paht Woon Sen\", 8.50)\nR6 = Restaurant(\"Thai Spoon\", \"Thai\", \"334-3344\", \"Mussamun\", 9.00)\n\nRL = [R1, R2, R3, R4, R5, R6]\n\nFrenchRestaurants = [r for r in RL if r.cuisine==\"French\"]\nprint(FrenchRestaurants)\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "namedtuple": [ + "REF", + 1 + ], + "Restaurant": [ + "REF", + 2 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "R3": [ + "REF", + 19 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "call" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 17 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 18 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 19 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 20 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 21 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "r": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + ".0": [ + "REF", + 24 + ], + "__return__": [ + "REF", + 25 + ], + "r": [ + "REF", + 22 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "_f1", + "ordered_varnames": [ + ".0", + "r", + "__return__" + ] + } + ], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "24": [ + "INSTANCE", + "list_iterator" + ], + "25": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ] + ] + }, + "line": 15, + "event": "return" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "FrenchRestaurants" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "FrenchRestaurants": [ + "REF", + 25 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "25": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ] + ] + }, + "line": 16, + "event": "step_line" + }, + { + "ordered_globals": [ + "namedtuple", + "Restaurant", + "R1", + "R2", + "R3", + "R4", + "R5", + "R6", + "RL", + "FrenchRestaurants" + ], + "stdout": "[Restaurant(name='Taillevent', cuisine='French', phone='343-3434', dish='Escargots', price=24.5), Restaurant(name=\"La Tour D'Argent\", cuisine='French', phone='343-3344', dish='Ris de Veau', price=48.5), Restaurant(name='Pascal', cuisine='French', phone='333-4444', dish='Bouillabaisse', price=32.0)]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "R4": [ + "REF", + 20 + ], + "namedtuple": [ + "REF", + 1 + ], + "R6": [ + "REF", + 22 + ], + "R1": [ + "REF", + 17 + ], + "R2": [ + "REF", + 18 + ], + "Restaurant": [ + "REF", + 2 + ], + "R3": [ + "REF", + 19 + ], + "FrenchRestaurants": [ + "REF", + 25 + ], + "R5": [ + "REF", + 21 + ], + "RL": [ + "REF", + 23 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "namedtuple(typename, field_names, verbose, rename)", + null + ], + "2": [ + "CLASS", + "Restaurant", + [ + "tuple" + ], + [ + "__getnewargs__", + [ + "REF", + 3 + ] + ], + [ + "__getstate__", + [ + "REF", + 4 + ] + ], + [ + "__new__", + [ + "REF", + 5 + ] + ], + [ + "__repr__", + [ + "REF", + 6 + ] + ], + [ + "__slots__", + [ + "REF", + 7 + ] + ], + [ + "_asdict", + [ + "REF", + 8 + ] + ], + [ + "_fields", + [ + "REF", + 9 + ] + ], + [ + "_make", + [ + "REF", + 10 + ] + ], + [ + "_replace", + [ + "REF", + 11 + ] + ], + [ + "cuisine", + [ + "REF", + 12 + ] + ], + [ + "dish", + [ + "REF", + 13 + ] + ], + [ + "name", + [ + "REF", + 14 + ] + ], + [ + "phone", + [ + "REF", + 15 + ] + ], + [ + "price", + [ + "REF", + 16 + ] + ] + ], + "3": [ + "FUNCTION", + "__getnewargs__(self)", + null + ], + "4": [ + "FUNCTION", + "__getstate__(self)", + null + ], + "5": [ + "INSTANCE", + "staticmethod" + ], + "6": [ + "FUNCTION", + "__repr__(self)", + null + ], + "7": [ + "TUPLE" + ], + "8": [ + "FUNCTION", + "_asdict(self)", + null + ], + "9": [ + "TUPLE", + "name", + "cuisine", + "phone", + "dish", + "price" + ], + "10": [ + "INSTANCE", + "classmethod" + ], + "11": [ + "FUNCTION", + "_replace(_self, **kwds)", + null + ], + "12": [ + "INSTANCE", + "property" + ], + "13": [ + "INSTANCE", + "property" + ], + "14": [ + "INSTANCE", + "property" + ], + "15": [ + "INSTANCE", + "property" + ], + "16": [ + "INSTANCE", + "property" + ], + "17": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Escargots" + ], + [ + "name", + "Taillevent" + ], + [ + "phone", + "343-3434" + ], + [ + "price", + 24.500 + ] + ], + "18": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Ris de Veau" + ], + [ + "name", + "La Tour D'Argent" + ], + [ + "phone", + "343-3344" + ], + [ + "price", + 48.500 + ] + ], + "19": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "French" + ], + [ + "dish", + "Bouillabaisse" + ], + [ + "name", + "Pascal" + ], + [ + "phone", + "333-4444" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "32.0" + ] + ] + ], + "20": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mee Krob" + ], + [ + "name", + "Thai Touch" + ], + [ + "phone", + "444-3333" + ], + [ + "price", + 10.950 + ] + ], + "21": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Paht Woon Sen" + ], + [ + "name", + "Thai Dishes" + ], + [ + "phone", + "333-4433" + ], + [ + "price", + 8.500 + ] + ], + "22": [ + "INSTANCE", + "Restaurant", + [ + "cuisine", + "Thai" + ], + [ + "dish", + "Mussamun" + ], + [ + "name", + "Thai Spoon" + ], + [ + "phone", + "334-3344" + ], + [ + "price", + [ + "SPECIAL_FLOAT", + "9.0" + ] + ] + ], + "23": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ], + [ + "REF", + 20 + ], + [ + "REF", + 21 + ], + [ + "REF", + 22 + ] + ], + "25": [ + "LIST", + [ + "REF", + 17 + ], + [ + "REF", + 18 + ], + [ + "REF", + 19 + ] + ] + }, + "line": 16, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/restaurants.txt b/v3/tests/backend-tests/restaurants.txt new file mode 100644 index 000000000..3d7c3b186 --- /dev/null +++ b/v3/tests/backend-tests/restaurants.txt @@ -0,0 +1,16 @@ +# Adapted from an example by David G. Kay +from collections import namedtuple + +Restaurant = namedtuple('Restaurant', 'name cuisine phone dish price') + +R1 = Restaurant("Taillevent", "French", "343-3434", "Escargots", 24.50) +R2 = Restaurant("La Tour D'Argent", "French", "343-3344", "Ris de Veau", 48.50) +R3 = Restaurant("Pascal", "French", "333-4444", "Bouillabaisse", 32.00) +R4 = Restaurant("Thai Touch", "Thai", "444-3333", "Mee Krob", 10.95) +R5 = Restaurant("Thai Dishes", "Thai", "333-4433", "Paht Woon Sen", 8.50) +R6 = Restaurant("Thai Spoon", "Thai", "334-3344", "Mussamun", 9.00) + +RL = [R1, R2, R3, R4, R5, R6] + +FrenchRestaurants = [r for r in RL if r.cuisine=="French"] +print(FrenchRestaurants) diff --git a/v3/tests/backend-tests/runtime_error.golden b/v3/tests/backend-tests/runtime_error.golden new file mode 100644 index 000000000..c26590156 --- /dev/null +++ b/v3/tests/backend-tests/runtime_error.golden @@ -0,0 +1,440 @@ +{ + "code": "x = 5\nfor i in range(10):\n if i == x:\n z = x + y # ERROR!\n else:\n z = i\n print(z)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "exception_msg": "NameError: name 'y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 4, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/runtime_error.golden_py3 b/v3/tests/backend-tests/runtime_error.golden_py3 new file mode 100644 index 000000000..c26590156 --- /dev/null +++ b/v3/tests/backend-tests/runtime_error.golden_py3 @@ -0,0 +1,440 @@ +{ + "code": "x = 5\nfor i in range(10):\n if i == x:\n z = x + y # ERROR!\n else:\n z = i\n print(z)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 0 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 1 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 2 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 3 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "i", + "z" + ], + "stdout": "0\n1\n2\n3\n4\n", + "exception_msg": "NameError: name 'y' is not defined", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 4 + }, + "heap": {}, + "line": 4, + "event": "exception" + } + ] +} diff --git a/v3/tests/backend-tests/runtime_error.txt b/v3/tests/backend-tests/runtime_error.txt new file mode 100644 index 000000000..d8be5bf4a --- /dev/null +++ b/v3/tests/backend-tests/runtime_error.txt @@ -0,0 +1,8 @@ +x = 5 +for i in range(10): + if i == x: + z = x + y # ERROR! + else: + z = i + print(z) + diff --git a/v3/tests/backend-tests/set_test.golden b/v3/tests/backend-tests/set_test.golden new file mode 100644 index 000000000..bf39a5207 --- /dev/null +++ b/v3/tests/backend-tests/set_test.golden @@ -0,0 +1,151 @@ +{ + "code": "x = set()\nx.add('a')\nx.add('a')\nx.add('b')\nx.add('c')\nx.add('b')\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "b" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "c", + "b" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "c", + "b" + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/set_test.golden_py3 b/v3/tests/backend-tests/set_test.golden_py3 new file mode 100644 index 000000000..bf39a5207 --- /dev/null +++ b/v3/tests/backend-tests/set_test.golden_py3 @@ -0,0 +1,151 @@ +{ + "code": "x = set()\nx.add('a')\nx.add('a')\nx.add('b')\nx.add('c')\nx.add('b')\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a" + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a" + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "b" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "c", + "b" + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "SET", + "a", + "c", + "b" + ] + }, + "line": 6, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/set_test.txt b/v3/tests/backend-tests/set_test.txt new file mode 100644 index 000000000..72ca6fa0a --- /dev/null +++ b/v3/tests/backend-tests/set_test.txt @@ -0,0 +1,7 @@ +x = set() +x.add('a') +x.add('a') +x.add('b') +x.add('c') +x.add('b') + diff --git a/v3/tests/backend-tests/simple.golden b/v3/tests/backend-tests/simple.golden new file mode 100644 index 000000000..c3f69caa6 --- /dev/null +++ b/v3/tests/backend-tests/simple.golden @@ -0,0 +1,501 @@ +{ + "code": "x = 5\ny = 10\nz = x * y\nprint(\"HELLO WORLD\")\nfor i in range(10):\n print(z * i)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 50 + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "HELLO WORLD\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 50 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 8, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 8, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n450\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n450\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "y": 10, + "z": 50, + "x": 5 + }, + "heap": {}, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/simple.golden_py3 b/v3/tests/backend-tests/simple.golden_py3 new file mode 100644 index 000000000..c3f69caa6 --- /dev/null +++ b/v3/tests/backend-tests/simple.golden_py3 @@ -0,0 +1,501 @@ +{ + "code": "x = 5\ny = 10\nz = x * y\nprint(\"HELLO WORLD\")\nfor i in range(10):\n print(z * i)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5 + }, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5 + }, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 50 + }, + "heap": {}, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z" + ], + "stdout": "HELLO WORLD\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "z": 50 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 0, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 1, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 2, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 3, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 4, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 5, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 6, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 7, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 8, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 8, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n450\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "x": 5, + "z": 50, + "y": 10 + }, + "heap": {}, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y", + "z", + "i" + ], + "stdout": "HELLO WORLD\n0\n50\n100\n150\n200\n250\n300\n350\n400\n450\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "i": 9, + "y": 10, + "z": 50, + "x": 5 + }, + "heap": {}, + "line": 5, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/simple.txt b/v3/tests/backend-tests/simple.txt new file mode 100644 index 000000000..8b7c08a7d --- /dev/null +++ b/v3/tests/backend-tests/simple.txt @@ -0,0 +1,7 @@ +x = 5 +y = 10 +z = x * y +print("HELLO WORLD") +for i in range(10): + print(z * i) + diff --git a/v3/tests/backend-tests/three_lists.golden b/v3/tests/backend-tests/three_lists.golden new file mode 100644 index 000000000..27775034e --- /dev/null +++ b/v3/tests/backend-tests/three_lists.golden @@ -0,0 +1,632 @@ +{ + "code": "# test case submitted by Peter Wentworth (p.wentworth@ru.ac.za)\n\ndef f(xs):\n print(xs)\n\na = [10, 20, 30]\nb = a\nc = [10, 20, 30]\nd = 24\ne = (a, b, c)\n\nf(b)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "[10, 20, 30]\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "[10, 20, 30]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/three_lists.golden_py3 b/v3/tests/backend-tests/three_lists.golden_py3 new file mode 100644 index 000000000..27775034e --- /dev/null +++ b/v3/tests/backend-tests/three_lists.golden_py3 @@ -0,0 +1,632 @@ +{ + "code": "# test case submitted by Peter Wentworth (p.wentworth@ru.ac.za)\n\ndef f(xs):\n print(xs)\n\na = [10, 20, 30]\nb = a\nc = [10, 20, 30]\nd = 24\ne = (a, b, c)\n\nf(b)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "f" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "b": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 3, + "event": "call" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "[10, 20, 30]\n", + "func_name": "f", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "xs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "f", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "f_f1", + "ordered_varnames": [ + "xs", + "__return__" + ] + } + ], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 4, + "event": "return" + }, + { + "ordered_globals": [ + "f", + "a", + "b", + "c", + "d", + "e" + ], + "stdout": "[10, 20, 30]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "a": [ + "REF", + 2 + ], + "c": [ + "REF", + 3 + ], + "b": [ + "REF", + 2 + ], + "e": [ + "REF", + 4 + ], + "d": 24, + "f": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "f(xs)", + null + ], + "2": [ + "LIST", + 10, + 20, + 30 + ], + "3": [ + "LIST", + 10, + 20, + 30 + ], + "4": [ + "TUPLE", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ], + [ + "REF", + 3 + ] + ] + }, + "line": 12, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/three_lists.txt b/v3/tests/backend-tests/three_lists.txt new file mode 100644 index 000000000..388dffc20 --- /dev/null +++ b/v3/tests/backend-tests/three_lists.txt @@ -0,0 +1,13 @@ +# test case submitted by Peter Wentworth (p.wentworth@ru.ac.za) + +def f(xs): + print(xs) + +a = [10, 20, 30] +b = a +c = [10, 20, 30] +d = 24 +e = (a, b, c) + +f(b) + diff --git a/v3/tests/backend-tests/ttt_min.golden b/v3/tests/backend-tests/ttt_min.golden new file mode 100644 index 000000000..0f751840d --- /dev/null +++ b/v3/tests/backend-tests/ttt_min.golden @@ -0,0 +1,722 @@ +{ + "code": "# minimal tic tac toe implementation and test\n\nimport ttt_module\n\ndef interactive_player(board, symbol):\n return int(mouse_input(\"Click on board\"))\n \ng = ttt_module.TTTGame(interactive_player, interactive_player, verbose=True)\nprint(g.play())\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ttt_module": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "module", + "ttt_module" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "ttt_module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "stdout": "Initializing TTTGame\n", + "func_name": "", + "stack_to_render": [], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "ttt_module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "html_output": "
      X to play", + "stdout": "Initializing TTTGame\n
      X to play\n", + "func_name": "interactive_player", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "symbol": "X", + "board": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "interactive_player", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "interactive_player_f1", + "ordered_varnames": [ + "board", + "symbol" + ] + } + ], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "css_output": "#htmlOutputDiv table, #htmlOutputDiv td, #htmlOutputDiv th {\n background-color: white;\n border-collapse: collapse;\n border: 2px solid black; }\n#htmlOutputDiv td, #htmlOutputDiv th {\n width: 30px;\n height: 30px;\n font-family: sans-serif;\n text-align: center; }", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "ttt_module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ], + "16": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "html_output": "
      X to play", + "stdout": "Initializing TTTGame\n
      X to play\n", + "func_name": "interactive_player", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "symbol": "X", + "board": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "interactive_player", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "interactive_player_f1", + "ordered_varnames": [ + "board", + "symbol" + ] + } + ], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "css_output": "#htmlOutputDiv table, #htmlOutputDiv td, #htmlOutputDiv th {\n background-color: white;\n border-collapse: collapse;\n border: 2px solid black; }\n#htmlOutputDiv td, #htmlOutputDiv th {\n width: 30px;\n height: 30px;\n font-family: sans-serif;\n text-align: center; }", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "module", + "ttt_module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ], + "16": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] + }, + "line": 6, + "event": "step_line" + }, + { + "prompt": "Click on board", + "event": "mouse_input" + } + ] +} diff --git a/v3/tests/backend-tests/ttt_min.golden_py3 b/v3/tests/backend-tests/ttt_min.golden_py3 new file mode 100644 index 000000000..fc7d2d521 --- /dev/null +++ b/v3/tests/backend-tests/ttt_min.golden_py3 @@ -0,0 +1,722 @@ +{ + "code": "# minimal tic tac toe implementation and test\n\nimport ttt_module\n\ndef interactive_player(board, symbol):\n return int(mouse_input(\"Click on board\"))\n \ng = ttt_module.TTTGame(interactive_player, interactive_player, verbose=True)\nprint(g.play())\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ttt_module": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "stdout": "Initializing TTTGame\n", + "func_name": "", + "stack_to_render": [], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "html_output": "
      X to play", + "stdout": "Initializing TTTGame\n
      X to play\n", + "func_name": "interactive_player", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "symbol": "X", + "board": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "interactive_player", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "interactive_player_f1", + "ordered_varnames": [ + "board", + "symbol" + ] + } + ], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "css_output": "#htmlOutputDiv table, #htmlOutputDiv td, #htmlOutputDiv th {\n background-color: white;\n border-collapse: collapse;\n border: 2px solid black; }\n#htmlOutputDiv td, #htmlOutputDiv th {\n width: 30px;\n height: 30px;\n font-family: sans-serif;\n text-align: center; }", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ], + "16": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "ttt_module", + "interactive_player", + "g" + ], + "html_output": "
      X to play", + "stdout": "Initializing TTTGame\n
      X to play\n", + "func_name": "interactive_player", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "symbol": "X", + "board": [ + "REF", + 16 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "interactive_player", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "interactive_player_f1", + "ordered_varnames": [ + "board", + "symbol" + ] + } + ], + "js_output": "$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})", + "css_output": "#htmlOutputDiv table, #htmlOutputDiv td, #htmlOutputDiv th {\n background-color: white;\n border-collapse: collapse;\n border: 2px solid black; }\n#htmlOutputDiv td, #htmlOutputDiv th {\n width: 30px;\n height: 30px;\n font-family: sans-serif;\n text-align: center; }", + "globals": { + "ttt_module": [ + "REF", + 1 + ], + "g": [ + "REF", + 3 + ], + "interactive_player": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "INSTANCE", + "module" + ], + "2": [ + "FUNCTION", + "interactive_player(board, symbol)", + null + ], + "3": [ + "INSTANCE", + "TTTGame", + [ + "board", + [ + "REF", + 4 + ] + ], + [ + "lines", + [ + "REF", + 5 + ] + ], + [ + "players", + [ + "REF", + 14 + ] + ], + [ + "symbols", + [ + "REF", + 15 + ] + ], + [ + "tomove", + 0 + ], + [ + "verbose", + true + ], + [ + "winner", + null + ] + ], + "4": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "5": [ + "LIST", + [ + "REF", + 6 + ], + [ + "REF", + 7 + ], + [ + "REF", + 8 + ], + [ + "REF", + 9 + ], + [ + "REF", + 10 + ], + [ + "REF", + 11 + ], + [ + "REF", + 12 + ], + [ + "REF", + 13 + ] + ], + "6": [ + "TUPLE", + 0, + 1, + 2 + ], + "7": [ + "TUPLE", + 3, + 4, + 5 + ], + "8": [ + "TUPLE", + 6, + 7, + 8 + ], + "9": [ + "TUPLE", + 0, + 3, + 6 + ], + "10": [ + "TUPLE", + 1, + 4, + 7 + ], + "11": [ + "TUPLE", + 2, + 5, + 8 + ], + "12": [ + "TUPLE", + 0, + 4, + 8 + ], + "13": [ + "TUPLE", + 2, + 4, + 6 + ], + "14": [ + "LIST", + [ + "REF", + 2 + ], + [ + "REF", + 2 + ] + ], + "15": [ + "LIST", + "X", + "O" + ], + "16": [ + "LIST", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] + }, + "line": 6, + "event": "step_line" + }, + { + "prompt": "Click on board", + "event": "mouse_input" + } + ] +} diff --git a/v3/tests/backend-tests/ttt_min.txt b/v3/tests/backend-tests/ttt_min.txt new file mode 100644 index 000000000..b52529788 --- /dev/null +++ b/v3/tests/backend-tests/ttt_min.txt @@ -0,0 +1,9 @@ +# minimal tic tac toe implementation and test + +import ttt_module + +def interactive_player(board, symbol): + return int(mouse_input("Click on board")) + +g = ttt_module.TTTGame(interactive_player, interactive_player, verbose=True) +print(g.play()) diff --git a/v3/tests/backend-tests/tuple_test.golden b/v3/tests/backend-tests/tuple_test.golden new file mode 100644 index 000000000..f1c5b4fc3 --- /dev/null +++ b/v3/tests/backend-tests/tuple_test.golden @@ -0,0 +1,72 @@ +{ + "code": "x = (1, 2, 3)\ny = (4,)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2, + 3 + ], + "2": [ + "TUPLE", + 4 + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/tuple_test.golden_py3 b/v3/tests/backend-tests/tuple_test.golden_py3 new file mode 100644 index 000000000..f1c5b4fc3 --- /dev/null +++ b/v3/tests/backend-tests/tuple_test.golden_py3 @@ -0,0 +1,72 @@ +{ + "code": "x = (1, 2, 3)\ny = (4,)\n\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2, + 3 + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": [ + "REF", + 2 + ], + "x": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "TUPLE", + 1, + 2, + 3 + ], + "2": [ + "TUPLE", + 4 + ] + }, + "line": 2, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/tuple_test.txt b/v3/tests/backend-tests/tuple_test.txt new file mode 100644 index 000000000..de68176ca --- /dev/null +++ b/v3/tests/backend-tests/tuple_test.txt @@ -0,0 +1,3 @@ +x = (1, 2, 3) +y = (4,) + diff --git a/v3/tests/backend-tests/two_funcs.golden b/v3/tests/backend-tests/two_funcs.golden new file mode 100644 index 000000000..9a2a15184 --- /dev/null +++ b/v3/tests/backend-tests/two_funcs.golden @@ -0,0 +1,1453 @@ +{ + "code": "def add(a, b, c):\n d = a + b\n return c + d\n\ndef double_add(a, b, c):\n x = add(a, b, c)\n y = add(a, b, c)\n return x + y\n\nx = 5\ny = 10\nz = x * y\nprint(add(x, y, z))\nprint(double_add(x, y, z))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5, + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10, + "y": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x", + "y" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "__return__": 130, + "y": 65, + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n130\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 14, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/two_funcs.golden_py3 b/v3/tests/backend-tests/two_funcs.golden_py3 new file mode 100644 index 000000000..9a2a15184 --- /dev/null +++ b/v3/tests/backend-tests/two_funcs.golden_py3 @@ -0,0 +1,1453 @@ +{ + "code": "def add(a, b, c):\n d = a + b\n return c + d\n\ndef double_add(a, b, c):\n x = add(a, b, c)\n y = add(a, b, c)\n return x + y\n\nx = 5\ny = 10\nz = x * y\nprint(add(x, y, z))\nprint(double_add(x, y, z))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ] + }, + "line": 5, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "x": 5, + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f1", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 14, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 5, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c" + ] + }, + { + "frame_id": 3, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f3", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 7, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c", + "d" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10 + }, + "is_highlighted": false, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x" + ] + }, + { + "frame_id": 4, + "encoded_locals": { + "a": 5, + "__return__": 65, + "c": 50, + "b": 10, + "d": 15 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "add_f4", + "ordered_varnames": [ + "a", + "b", + "c", + "d", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 3, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "x": 65, + "c": 50, + "b": 10, + "y": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x", + "y" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n", + "func_name": "double_add", + "stack_to_render": [ + { + "frame_id": 2, + "encoded_locals": { + "a": 5, + "c": 50, + "b": 10, + "__return__": 130, + "y": 65, + "x": 65 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "double_add", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "double_add_f2", + "ordered_varnames": [ + "a", + "b", + "c", + "x", + "y", + "__return__" + ] + } + ], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 8, + "event": "return" + }, + { + "ordered_globals": [ + "add", + "double_add", + "x", + "y", + "z" + ], + "stdout": "65\n130\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "y": 10, + "x": 5, + "add": [ + "REF", + 1 + ], + "z": 50, + "double_add": [ + "REF", + 2 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "add(a, b, c)", + null + ], + "2": [ + "FUNCTION", + "double_add(a, b, c)", + null + ] + }, + "line": 14, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/two_funcs.txt b/v3/tests/backend-tests/two_funcs.txt new file mode 100644 index 000000000..32959fbd6 --- /dev/null +++ b/v3/tests/backend-tests/two_funcs.txt @@ -0,0 +1,14 @@ +def add(a, b, c): + d = a + b + return c + d + +def double_add(a, b, c): + x = add(a, b, c) + y = add(a, b, c) + return x + y + +x = 5 +y = 10 +z = x * y +print(add(x, y, z)) +print(double_add(x, y, z)) diff --git a/v3/tests/backend-tests/varargs.golden b/v3/tests/backend-tests/varargs.golden new file mode 100644 index 000000000..64cd90d22 --- /dev/null +++ b/v3/tests/backend-tests/varargs.golden @@ -0,0 +1,267 @@ +{ + "code": "def parrot(mandatory, mandatory2, *args, **kwargs):\n pass\n\nparrot('a', 'b', 'c', 'd', 'e', name='Philip', age='35')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs", + "__return__" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/varargs.golden_py3 b/v3/tests/backend-tests/varargs.golden_py3 new file mode 100644 index 000000000..64cd90d22 --- /dev/null +++ b/v3/tests/backend-tests/varargs.golden_py3 @@ -0,0 +1,267 @@ +{ + "code": "def parrot(mandatory, mandatory2, *args, **kwargs):\n pass\n\nparrot('a', 'b', 'c', 'd', 'e', name='Philip', age='35')\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 1, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ] + }, + "line": 4, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 1, + "event": "call" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "parrot", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "__return__": null, + "args": [ + "REF", + 3 + ], + "mandatory": "a", + "mandatory2": "b", + "kwargs": [ + "REF", + 2 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "parrot", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "parrot_f1", + "ordered_varnames": [ + "mandatory", + "mandatory2", + "args", + "kwargs", + "__return__" + ] + } + ], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ], + "2": [ + "DICT", + [ + "age", + "35" + ], + [ + "name", + "Philip" + ] + ], + "3": [ + "TUPLE", + "c", + "d", + "e" + ] + }, + "line": 2, + "event": "return" + }, + { + "ordered_globals": [ + "parrot" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "parrot": [ + "REF", + 1 + ] + }, + "heap": { + "1": [ + "FUNCTION", + "parrot(mandatory, mandatory2, *args, **kwargs)", + null + ] + }, + "line": 4, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/varargs.txt b/v3/tests/backend-tests/varargs.txt new file mode 100644 index 000000000..6e26086ea --- /dev/null +++ b/v3/tests/backend-tests/varargs.txt @@ -0,0 +1,4 @@ +def parrot(mandatory, mandatory2, *args, **kwargs): + pass + +parrot('a', 'b', 'c', 'd', 'e', name='Philip', age='35') diff --git a/v3/tests/backend-tests/watch_module_selection_sort.golden b/v3/tests/backend-tests/watch_module_selection_sort.golden new file mode 100644 index 000000000..c33ad8cb9 --- /dev/null +++ b/v3/tests/backend-tests/watch_module_selection_sort.golden @@ -0,0 +1,5599 @@ +{ + "code": "# tests Peter Norvig's watch_module.py with a simple selection sort example\nfrom watch_module import watchfn, watchedlist\n\n# The decorator here says that the 0th positional argument should be a list;\n# we will watch it, and the locals named i, mini, and min_index\n@watchfn((watchedlist, 'i mini min_index'))\ndef selection_sort(A):\n for i in range(len(A)):\n mini = min(A[i:])\n min_index = A[i:].index(mini) + i \n if i != min_index:\n A[min_index], A[i] = A[i], A[min_index]\n return A\n\nprint(selection_sort([3, 5, 2, 1, 8, 5, 9]))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0, + "mini": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0, + "min_index": 3, + "mini": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0, + "min_index": 3, + "mini": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0, + "min_index": 3, + "mini": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 1, + "min_index": 3, + "mini": 1 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 1, + "min_index": 3, + "mini": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 1, + "min_index": 2, + "mini": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 1, + "min_index": 2, + "mini": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 1, + "min_index": 2, + "mini": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 2, + "min_index": 2, + "mini": 2 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 2, + "min_index": 2, + "mini": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 2, + "min_index": 3, + "mini": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 2, + "min_index": 3, + "mini": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 2, + "min_index": 3, + "mini": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 3, + "min_index": 3, + "mini": 3 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 3, + "min_index": 3, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 3, + "min_index": 3, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 3, + "min_index": 3, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 4, + "min_index": 3, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 4, + "min_index": 3, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 4, + "min_index": 5, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 4, + "min_index": 5, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 12, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 4, + "min_index": 5, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 5, + "min_index": 5, + "mini": 5 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 5, + "min_index": 5, + "mini": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 5, + "min_index": 5, + "mini": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 5, + "min_index": 5, + "mini": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "min_index": 5, + "mini": 8 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "min_index": 5, + "mini": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 10, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "min_index": 6, + "mini": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 11, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "min_index": 6, + "mini": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "min_index": 6, + "mini": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 13, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 6, + "__return__": [ + "REF", + 9 + ], + "min_index": 6, + "mini": 9 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "mini", + "min_index", + "__return__" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 13, + "event": "return" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 0;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[3, 5, 2, 1, 8, 5, 9]]; value is 3;\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[3] = 3\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nsetting A[0] = 1\n watched locals: {'i': 0, 'mini': 1, 'min_index': 3}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 1;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 5, 2, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[2] = 5\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nsetting A[1] = 2\n watched locals: {'i': 1, 'mini': 2, 'min_index': 2}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 2;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 5, 3, 8, 5, 9]]; value is 3;\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[3] = 5\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nsetting A[2] = 3\n watched locals: {'i': 2, 'mini': 3, 'min_index': 3}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 4;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nfetching A[[1, 2, 3, 5, 8, 5, 9]]; value is 5;\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[5] = 8\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\nsetting A[4] = 5\n watched locals: {'i': 4, 'mini': 5, 'min_index': 5}\n[1, 2, 3, 5, 5, 8, 9]\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ] + }, + "line": 15, + "event": "return" + } + ] +} diff --git a/v3/tests/backend-tests/watch_module_selection_sort.golden_py3 b/v3/tests/backend-tests/watch_module_selection_sort.golden_py3 new file mode 100644 index 000000000..cb595abe1 --- /dev/null +++ b/v3/tests/backend-tests/watch_module_selection_sort.golden_py3 @@ -0,0 +1,1144 @@ +{ + "code": "# tests Peter Norvig's watch_module.py with a simple selection sort example\nfrom watch_module import watchfn, watchedlist\n\n# The decorator here says that the 0th positional argument should be a list;\n# we will watch it, and the locals named i, mini, and min_index\n@watchfn((watchedlist, 'i mini min_index'))\ndef selection_sort(A):\n for i in range(len(A)):\n mini = min(A[i:])\n min_index = A[i:].index(mini) + i \n if i != min_index:\n A[min_index], A[i] = A[i], A[min_index]\n return A\n\nprint(selection_sort([3, 5, 2, 1, 8, 5, 9]))\n", + "trace": [ + { + "ordered_globals": [], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": {}, + "heap": {}, + "line": 2, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ] + }, + "line": 6, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ] + }, + "line": 15, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 6, + "event": "call" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ] + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 8, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "step_line" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is slice(0, None, None);\n", + "exception_msg": "KeyError: ('mini',)", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0 + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "exception" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is slice(0, None, None);\n", + "func_name": "selection_sort", + "stack_to_render": [ + { + "frame_id": 1, + "encoded_locals": { + "A": [ + "REF", + 9 + ], + "i": 0, + "__return__": null + }, + "is_highlighted": true, + "is_parent": false, + "func_name": "selection_sort", + "is_zombie": false, + "parent_frame_id_list": [], + "unique_hash": "selection_sort_f1", + "ordered_varnames": [ + "A", + "i", + "__return__" + ] + } + ], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ], + "9": [ + "INSTANCE", + "watchedlist", + [ + "watchedlocals", + [ + "REF", + 10 + ] + ] + ], + "10": [ + "LIST", + "i", + "mini", + "min_index" + ] + }, + "line": 9, + "event": "return" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is slice(0, None, None);\n", + "exception_msg": "KeyError: ('mini',)", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ] + }, + "line": 15, + "event": "exception" + }, + { + "ordered_globals": [ + "watchedlist", + "watchfn", + "selection_sort" + ], + "stdout": "fetching A[[3, 5, 2, 1, 8, 5, 9]]; value is slice(0, None, None);\n", + "func_name": "", + "stack_to_render": [], + "globals": { + "watchedlist": [ + "REF", + 1 + ], + "watchfn": [ + "REF", + 5 + ], + "selection_sort": [ + "REF", + 8 + ] + }, + "heap": { + "1": [ + "CLASS", + "watchedlist", + [ + "list" + ], + [ + "__getitem__", + [ + "REF", + 2 + ] + ], + [ + "__setitem__", + [ + "REF", + 3 + ] + ], + [ + "watchlocals", + [ + "REF", + 4 + ] + ] + ], + "2": [ + "FUNCTION", + "__getitem__(self, i)", + null + ], + "3": [ + "FUNCTION", + "__setitem__(self, i, val)", + null + ], + "4": [ + "FUNCTION", + "watchlocals(self)", + null + ], + "5": [ + "CLASS", + "watchfn", + [], + [ + "__call__", + [ + "REF", + 6 + ] + ], + [ + "__init__", + [ + "REF", + 7 + ] + ] + ], + "6": [ + "FUNCTION", + "__call__(self, fn)", + null + ], + "7": [ + "FUNCTION", + "__init__(self, *args, **kwargs)", + null + ], + "8": [ + "FUNCTION", + "wrapped_fn(*args, **kwargs)", + null + ] + }, + "line": 15, + "event": "return" + }, + { + "exception_msg": "KeyError: 'mini'", + "event": "uncaught_exception" + } + ] +} diff --git a/v3/tests/backend-tests/watch_module_selection_sort.txt b/v3/tests/backend-tests/watch_module_selection_sort.txt new file mode 100644 index 000000000..c95154f2e --- /dev/null +++ b/v3/tests/backend-tests/watch_module_selection_sort.txt @@ -0,0 +1,15 @@ +# tests Peter Norvig's watch_module.py with a simple selection sort example +from watch_module import watchfn, watchedlist + +# The decorator here says that the 0th positional argument should be a list; +# we will watch it, and the locals named i, mini, and min_index +@watchfn((watchedlist, 'i mini min_index')) +def selection_sort(A): + for i in range(len(A)): + mini = min(A[i:]) + min_index = A[i:].index(mini) + i + if i != min_index: + A[min_index], A[i] = A[i], A[min_index] + return A + +print(selection_sort([3, 5, 2, 1, 8, 5, 9])) diff --git a/v3/tests/diff_py23_golden_files.py b/v3/tests/diff_py23_golden_files.py new file mode 100644 index 000000000..904cb6d04 --- /dev/null +++ b/v3/tests/diff_py23_golden_files.py @@ -0,0 +1,7 @@ +import os, itertools, subprocess + +for (dn, sd, files) in itertools.chain(os.walk('backend-tests/'), os.walk('../example-code/')): + for f in files: + bn, ext = os.path.splitext(f) + if ext == '.golden': + subprocess.call(['diff', '-u', os.path.join(dn, bn + ext), os.path.join(dn, bn + '.golden_py3')]) diff --git a/v3/tests/example-code b/v3/tests/example-code new file mode 120000 index 000000000..153b6e23a --- /dev/null +++ b/v3/tests/example-code @@ -0,0 +1 @@ +../example-code \ No newline at end of file diff --git a/v3/tests/golden_test.py b/v3/tests/golden_test.py new file mode 100644 index 000000000..f8195162b --- /dev/null +++ b/v3/tests/golden_test.py @@ -0,0 +1,191 @@ +''' +A simple framework for regression testing based on golden files +by Philip Guo + +(sloppily) customized for the Online Python Tutor project + +THIS ONLY WORKS ON Python 2.7 and 3.2 +(note that Python 3.3 gives all sorts of weird non-deterministic errors, so use Python 3.2 for now) + +Also note that the Python 3 tests aren't as "robust" or as rigorously checked ... +I've been focusing on Python 2 for now. +''' + +import os, re, shutil, optparse, difflib +from subprocess import * + +RED = '\033[91m' +ENDC = '\033[0m' # end color + +def filter_output(s): + return s + + +def execute(input_filename): + assert os.path.isfile(input_filename) + (base, ext) = os.path.splitext(input_filename) + assert ext == INPUT_FILE_EXTENSION + + (stdout, stderr) = Popen(PROGRAM + [input_filename], stdout=PIPE, stderr=PIPE).communicate() + + if stderr: + print '(has stderr)' + # print ' stderr {' + # print stderr, '}' + else: + print + + # capture stdout into outfile, filtering out machine-specific addresses + outfile = base + OUTPUT_FILE_EXTENSION + outf = open(outfile, 'w') + + for line in stdout.splitlines(): + filtered_line = re.sub(' 0x.+?>', ' 0xADDR>', line) + print >> outf, filtered_line + + outf.close() + + +def clobber_golden_file(golden_file): + (base, ext) = os.path.splitext(golden_file) + outfile = base + OUTPUT_FILE_EXTENSION + assert os.path.isfile(outfile) + print ' Clobber %s => %s' % (outfile, golden_file) + shutil.copy(outfile, golden_file) + + +# returns True if there is a diff, False otherwise +def golden_differs_from_out(golden_file): + (base, ext) = os.path.splitext(golden_file) + outfile = base + OUTPUT_FILE_EXTENSION + assert os.path.isfile(outfile) + assert os.path.isfile(golden_file) + + golden_s = open(golden_file).readlines() + out_s = open(outfile).readlines() + + golden_s_filtered = filter_output(golden_s) + out_s_filtered = filter_output(out_s) + + return out_s_filtered != golden_s_filtered + + +def diff_test_output(test_name): + (base, ext) = os.path.splitext(test_name) + + golden_file = base + GOLDEN_FILE_EXTENSION + assert os.path.isfile(golden_file) + outfile = base + OUTPUT_FILE_EXTENSION + assert os.path.isfile(outfile) + + golden_s = open(golden_file).readlines() + out_s = open(outfile).readlines() + + golden_s_filtered = filter_output(golden_s) + out_s_filtered = filter_output(out_s) + + first_line = True + for line in difflib.unified_diff(golden_s_filtered, out_s_filtered, \ + fromfile=golden_file, tofile=outfile): + if first_line: + print # print an extra line to ease readability + first_line = False + print line, + + +def run_test(input_filename, clobber_golden=False): + print 'Testing', input_filename, + + (base, ext) = os.path.splitext(input_filename) + assert ext == INPUT_FILE_EXTENSION + + # to eliminate possibility of using stale output: + outfile = base + OUTPUT_FILE_EXTENSION + if os.path.isfile(outfile): + os.remove(outfile) + + input_fullpath = input_filename + execute(input_fullpath) + + golden_file = base + GOLDEN_FILE_EXTENSION + if os.path.isfile(golden_file): + if golden_differs_from_out(golden_file): + print " " + RED + "FAILED!!!" + ENDC + if clobber_golden: + clobber_golden_file(golden_file) + else: + clobber_golden_file(golden_file) + + +def run_all_tests(clobber=False): + for t in ALL_TESTS: + run_test(t, clobber) + +def diff_all_test_outputs(): + for t in ALL_TESTS: + diff_test_output(t) + + +if __name__ == "__main__": + parser = optparse.OptionParser() + parser.add_option("--all", action="store_true", dest="run_all", + help="Run all tests") + parser.add_option("--only-clobber", action="store_true", dest="only_clobber", + help="Clobber ALL golden files WITHOUT re-running tests") + parser.add_option("--clobber", action="store_true", dest="clobber", + help="Clobber golden files when running tests") + parser.add_option("--test", dest="test_name", + help="Run one test") + parser.add_option("--difftest", dest="diff_test_name", + help="Diff against golden file for one test") + parser.add_option("--diffall", action="store_true", dest="diff_all", + help="Diff against golden file for all tests") + parser.add_option("--py3", action="store_true", dest="py3", + help="Run tests using Python 3.2 (rather than Python 2.7)") + (options, args) = parser.parse_args() + + + INPUT_FILE_EXTENSION = '.txt' # input test files are .txt, NOT .py + + if options.py3: + PROGRAM = ['python3.2', '../generate_json_trace.py'] + OUTPUT_FILE_EXTENSION = '.out_py3' + GOLDEN_FILE_EXTENSION = '.golden_py3' + else: + PROGRAM = ['python2.7', '../generate_json_trace.py'] + OUTPUT_FILE_EXTENSION = '.out' + GOLDEN_FILE_EXTENSION = '.golden' + + ALL_TESTS = [] + + for (pwd, subdirs, files) in os.walk('.', followlinks=True): # need to follow example-code symlink + for f in files: + (base, ext) = os.path.splitext(f) + if ext == INPUT_FILE_EXTENSION: + fullpath = os.path.join(pwd, f) + ALL_TESTS.append(fullpath) + + + if options.run_all: + if options.clobber: + print 'Running all tests and clobbering results ...' + else: + print 'Running all tests ...' + run_all_tests(options.clobber) + + elif options.diff_all: + diff_all_test_outputs() + elif options.diff_test_name: + assert options.diff_test_name in ALL_TESTS + diff_test_output(options.diff_test_name) + elif options.test_name: + assert options.test_name in ALL_TESTS + run_test(options.test_name, options.clobber) + elif options.only_clobber: + for t in ALL_TESTS: + (base, ext) = os.path.splitext(t) + golden_file = base + GOLDEN_FILE_EXTENSION + clobber_golden_file(golden_file) + else: + parser.print_help() + diff --git a/v3/tests/run-all-tests.sh b/v3/tests/run-all-tests.sh new file mode 100755 index 000000000..40b4e7577 --- /dev/null +++ b/v3/tests/run-all-tests.sh @@ -0,0 +1,8 @@ +#!/bin/sh +echo 'Python 2.7 test' +echo '===============' +python golden_test.py --all +echo +echo 'Python 3.2 test' +echo '===============' +python golden_test.py --all --py3 diff --git a/v3/ttt_module.py b/v3/ttt_module.py new file mode 100644 index 000000000..a1031a302 --- /dev/null +++ b/v3/ttt_module.py @@ -0,0 +1,173 @@ +""" +Tic Tac Toe (and more generally, 2-D grid environments) that display in browser. + +Created by Peter Norvig + +NB: need to work on both Python 2 and 3 +""" + +############################################################################## +# CSS and HTML +############################################################################## + +if False: + def setCSS(text): + "Set (or append??) CSS to be text." + global __CSS__ + __CSS__ = text + print('setCSS: ' + text) + + def setHTML(text): + "Set (or append??) HTML to be text." + global __HTML__ + __HTML__ = text + print('setHTML: ' + text) + + +def tagger(tagname): + "Make a function that can be used to generate HTML." + def tagfn(*content, **kwargs): + args = ('' if not kwargs else + ' ' + ' '.join('{}={!r}'.format(k, kwargs[k]) for k in kwargs)) + return "<{}{}>{}".format( + tagname, args, join(content), tagname) + #tagfn.__name__ = tagname # not allowed in OPT sandbox + return tagfn + +A, B, I, P, TABLE, TR, TD, TH = map(tagger, 'A B I P, TABLE TR TD TH'.split()) + +def join(content): + "Like ' '.join(content), but recurses into nested lists." + return (content if isinstance(content, str) else + ' '.join(map(join, content)) if isinstance(content, (list, tuple)) else + str(content)) + +# Python 3 doesn't have xrange, so bind it to range +try: + _ = xrange +except NameError: + xrange = range + +def table(matrix, **kwargs): + """Given [[a, b, c], [d, e, f]], lay it out as a table. + Each cell gets an id number, starting at 0. Table can have kwargs.""" + ints = iter(xrange(1000000)) + return TABLE([TR([TD(c, id=next(ints)) for c in row]) + for row in matrix], + **kwargs) + + +css = """#htmlOutputDiv table, #htmlOutputDiv td, #htmlOutputDiv th { + background-color: white; + border-collapse: collapse; + border: 2px solid black; } +#htmlOutputDiv td, #htmlOutputDiv th { + width: 30px; + height: 30px; + font-family: sans-serif; + text-align: center; }""" + + + +class Game(object): + "Move stuff here later" + pass + +class TTTGame(Game): + def __init__(self, player1, player2, verbose=True): + print('Initializing TTTGame') + self.board = [' '] * 9 # board is 1-D array of squares; can be mapped to 2-D. + self.tomove = 0 + self.symbols = ['X', 'O'] + self.players = [player1, player2] # player strategy functions + self.lines = [(0, 1, 2), (3, 4, 5), (6, 7, 8), + (0, 3, 6), (1, 4, 7), (2, 5, 8), + (0, 4, 8), (2, 4, 6)] + self.winner = None + self.verbose = verbose + + # mouse handler for board + # TODO: clean this up + setJS("$('#htmlOutputDiv table td').click(function(){myVisualizer.executeCodeWithRawInputFunc($(this).attr('id'), myVisualizer.curInstr)})") + + + def draw(self): + setCSS(css) + s = table([[self.board[3*r + c] for c in range(3)] for r in range(3)]) + if self.over(): + s += P('Game over; ', 'nobody' if self.winner is None else self.symbols[self.winner], ' wins') + else: + s += P(self.symbols[self.tomove] + ' to play') + if self.verbose: print(s) + setHTML(s) + return s + + def play(self): + self.draw() + #while not self.over(): + for i in range(2): + p = self.tomove + move = self.players[p](list(self.board), self.symbols[p]) + self.makemove(move) + self.draw() + + def displayWarning(self, msg): + print('WARNING! ' + msg) + + def makemove(self, move): + player = self.tomove + print('making move ' + str(move) + ' for player ' + str(player)) + if self.over(): + self.displayWarning('game over, no more moves') + elif move not in range(9): + self.displayWarning('not a legal square ' + str(move)) + return None + elif self.board[move] != ' ': + self.displayWarning('not an empty square ' + str(move)) + return None + else: + self.board[move] = self.symbols[player] + self.tomove = other(player) + return move + + def legal(self, move): + "A legal move is an index to a blank square." + return move in range(9) and self.board[move] == ' ' + + def over(self): + "Return True when game is over." + if ' ' not in self.board: + winner = None + return True # no moves left; game is a draw + for player in [0, 1]: + for line in self.lines: + if self.linecount(line, player) == 3: + self.winner = player + return True + return False + + def playgame(self): + while not self.over(): + self.makemove() + + def linecount(self, line, player): + "Return the number of pieces that player (0 or 1) has on this line." + return [self.board[i] for i in line].count(self.symbols[player]) + + def illegalmove(self, move): + "Report that move is illegal; decrement remaining count for player." + ## How to report ??? + self.allowed_illegal_moves[self.tomove] -= 1 + if self.allowed_illegal_moves[self.tomove] < 0: + ### Report game over on illegal move ??? + self.winner = other(self.tomove) + + def copystate(self): + clone = TTTGame(*self.players) + clone.tomove = self.tomove + clone.board = list(self.board) + return clone + + +def other(player): return 1 - player + diff --git a/v3/visualize.html b/v3/visualize.html new file mode 100644 index 000000000..89f68a971 --- /dev/null +++ b/v3/visualize.html @@ -0,0 +1,277 @@ + + + + + + + Online Python Tutor - Visualize program execution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +Write your Python code here: +
      + +
      + +

      +Execute code using + , + , + , + , + , and + . +

      + +

      + + +

      + + +

      Here are some example Python code snippets to visualize:

      + +

      Basic: + +hello | +happy | +intro | +filter | +tokenize | +insertion sort | +list comprehension +

      + +

      Math: +factorial | +fibonacci | +memoized fibonacci | +square root | +gcd | +towers of hanoi +

      + +

      User Input: + +raw input + +

      + +

      Objects: + +OOP 1 | +OOP 2 | +OOP 3 | +inheritance + +

      + +

      Linked Lists: +LL 1 | +LL 2 | +LL sum +

      + +

      Pointer Aliasing:
      +aliasing 1 | +aliasing 2 | +aliasing 3 | +aliasing 4 +
      +aliasing 5 | +aliasing 6 | +aliasing 7 | +aliasing 8 | +sumList +

      + +

      Higher-Order Functions:
      + +closure 1 | +closure 2 | +closure 3 | +closure 4 | +closure 5 +
      + +list map | +summation | +lambda param | +student torture + +

      + +

      Python Tricks:
      +decorators | +generators | +gen expr | +varargs | +exceptions | +for-else | +nonlocal | +metaclass +

      + +

      +HTML +rendering (experimental code by +Chris Meyers):
      +[WARNING: will set toggle option from "show everything" to "show only outputs"]
      + +minPath | +knapsack | +sieve | +fib + +

      + +
      + + +
      +
      + + + + + + diff --git a/v3/watch_module.py b/v3/watch_module.py new file mode 100644 index 000000000..a8e229698 --- /dev/null +++ b/v3/watch_module.py @@ -0,0 +1,59 @@ +# Created by Peter Norvig + +# TODO: need to somehow enable sys._getframe() +# even though 'sys' is technically locked down + +#import inspect # old and really slow! +import sys + +class watchedlist(list): + """A class that wraps a list, and monitors sets and gets. + Optionally monitors local variables.""" + def __setitem__(self, i, val): + print('setting A[{}] = {}'.format(i, val)) + self.watchlocals() + return list.__setitem__(self, i, val) + def __getitem__(self, i): + print('fetching A[{}]; value is {};'.format( + self, i, list.__getitem__(self, i))) + self.watchlocals() + return list.__getitem__(self, i) + + def watchlocals(self): + if hasattr(self, 'watchedlocals'): + #D = inspect.stack()[2][0].f_locals # old and really slow! + D = sys._getframe(2).f_locals + print(' watched locals: {}'.format( + {var: D[var] for var in self.watchedlocals})) + + +def watch(object, watchedspec): + """Wrap object with a wrapper class (like watchedlist). + watchedspec is either None or a callable (like watchedlist), or + a 2-tuple of (callable, local_var_names), where local_var_names + can be a string or a sequence of strings.""" + if not watchedspec: + return object + kind, locals = (watchedspec if isinstance(watchedspec, (tuple, list)) else + (watchedspec, ())) + if isinstance(locals, str): locals = locals.split() + watched = kind(object) + watched.watchedlocals = locals + return watched + + +class watchfn(object): + """Decorator that watches the arguments of a function. + Specify watchedspecs for each positional argument, and optionally + for keyword arguments.""" + def __init__(self, *args, **kwargs): + self.args, self.kwargs = args, kwargs + + def __call__(self, fn): + def wrapped_fn(*args, **kwargs): + args = [watch(obj, spec) for (obj, spec) in zip(args, self.args)] + kwargs = {k: watch(kwargs[k], self.args.get(k, None)) for k in kwargs} + return fn(*args, **kwargs) + #wrapped_fn.__name__ = fn.__name__ + return wrapped_fn + diff --git a/v3/web_exec.py b/v3/web_exec.py new file mode 100644 index 000000000..191cf246a --- /dev/null +++ b/v3/web_exec.py @@ -0,0 +1,78 @@ +# + +# Minimal CGI script for Online Python Tutor (v3), tested under Python 2 and 3 + +# If you want to run this script, then you'll need to change the +# shebang #! line at the top of this file to point to your system's Python. +# +# Also, check CGI execute permission in your script directory. +# You might need to create an .htaccess file like the following: +# +# Options +ExecCGI +# AddHandler cgi-script .py + + +import cgi +import json +import pg_logger +import sys + + +# set to true if you want to log queries in DB_FILE +LOG_QUERIES = False + +if LOG_QUERIES: + import os, datetime, create_log_db, sqlite3 + + +def cgi_finalizer(input_code, output_trace): + """Write JSON output for js/pytutor.js as a CGI result.""" + ret = dict(code=input_code, trace=output_trace) + json_output = json.dumps(ret, indent=None) # use indent=None for most compact repr + + if LOG_QUERIES: + # just to be paranoid, don't croak the whole program just + # because there's some error in logging it to the database + try: + # log queries into sqlite database. + # make sure that your web server's account has write permissions + # in the current directory, for logging to work properly + con = sqlite3.connect(create_log_db.DB_FILE) + cur = con.cursor() + + cur.execute("INSERT INTO query_log VALUES (NULL, ?, ?, ?, ?, ?, ?)", + (datetime.datetime.now(), + os.environ.get("REMOTE_ADDR", "N/A"), + os.environ.get("HTTP_USER_AGENT", "N/A"), + os.environ.get("HTTP_REFERER", "N/A"), + user_script, + int(cumulative_mode))) + con.commit() + cur.close() + except Exception as err: + # this is bad form, but silently fail on error ... + print(err) + + print("Content-type: text/plain; charset=iso-8859-1\n") + print(json_output) + +raw_input_json = None +options_json = None + +# If you pass in a filename as an argument, then process script from that file ... +if len(sys.argv) > 1: + user_script = open(sys.argv[1]).read() + +# Otherwise act like a CGI script with parameters: +# user_script +# raw_input_json +# options_json +else: + form = cgi.FieldStorage() + user_script = form['user_script'].value + if 'raw_input_json' in form: + raw_input_json = form['raw_input_json'].value + if 'options_json' in form: + options_json = form['options_json'].value + +pg_logger.exec_script_str(user_script, raw_input_json, options_json, cgi_finalizer)